@indicated/vibeguard 1.2.1 → 1.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,wBAAgB,iBAAiB,IAAI,OAAO,CAgF3C"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,iBAAiB,IAAI,OAAO,CAwG3C"}
@@ -67,32 +67,57 @@ function createScanCommand() {
67
67
  console.log((0, output_1.formatScanning)(result.files));
68
68
  }
69
69
  // Output results
70
+ const userTier = scanner.getUserTier();
70
71
  if (options.json) {
71
- const userTier = scanner.getUserTier();
72
- console.log(JSON.stringify({
73
- version: packageJson.version,
74
- tier: userTier,
75
- files: result.files,
76
- findings: result.findings.map(f => ({
77
- rule: f.rule.id,
78
- severity: f.rule.severity,
79
- tier: f.rule.tier,
80
- file: path.relative(cwd, f.file),
81
- line: f.line,
82
- column: f.column,
83
- message: f.rule.name,
84
- fix: f.isRestricted ? null : f.rule.fix,
85
- isRestricted: f.isRestricted,
86
- })),
87
- duration: result.duration,
88
- }, null, 2));
72
+ // For free tier, only include counts in JSON, not individual findings
73
+ if (userTier === 'free') {
74
+ const counts = {
75
+ critical: result.findings.filter(f => f.rule.severity === 'critical').length,
76
+ high: result.findings.filter(f => f.rule.severity === 'high').length,
77
+ medium: result.findings.filter(f => f.rule.severity === 'medium').length,
78
+ low: result.findings.filter(f => f.rule.severity === 'low').length,
79
+ };
80
+ console.log(JSON.stringify({
81
+ version: packageJson.version,
82
+ tier: userTier,
83
+ files: result.files,
84
+ totalIssues: result.findings.length,
85
+ counts,
86
+ findings: [], // Empty for free tier
87
+ duration: result.duration,
88
+ upgradeMessage: 'Upgrade to Pro to see individual findings with file locations and fix suggestions',
89
+ }, null, 2));
90
+ }
91
+ else {
92
+ console.log(JSON.stringify({
93
+ version: packageJson.version,
94
+ tier: userTier,
95
+ files: result.files,
96
+ findings: result.findings.map(f => ({
97
+ rule: f.rule.id,
98
+ severity: f.rule.severity,
99
+ tier: f.rule.tier,
100
+ file: path.relative(cwd, f.file),
101
+ line: f.line,
102
+ column: f.column,
103
+ message: f.rule.name,
104
+ fix: f.isRestricted ? null : f.rule.fix,
105
+ isRestricted: f.isRestricted,
106
+ })),
107
+ duration: result.duration,
108
+ }, null, 2));
109
+ }
89
110
  }
90
111
  else if (!options.quiet) {
91
112
  if (result.findings.length === 0) {
92
113
  console.log((0, output_1.formatCleanResult)());
93
114
  }
115
+ else if (userTier === 'free') {
116
+ // Free tier: show counts only, no individual findings
117
+ console.log((0, output_1.formatFreeUserSummary)(result));
118
+ }
94
119
  else {
95
- const userTier = scanner.getUserTier();
120
+ // Pro tier: show full details
96
121
  for (const finding of result.findings) {
97
122
  console.log((0, output_1.formatFinding)(finding, cwd));
98
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,8CAwGC;AA5HD,yCAAoC;AACpC,2CAA6B;AAC7B,2CAAwC;AACxC,+CAAkD;AAClD,sCAAuC;AACvC,sCAUmB;AAGnB,MAAM,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAErD,SAAgB,iBAAiB;IAC/B,MAAM,IAAI,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;SAC7B,WAAW,CAAC,wDAAwD,CAAC;SACrE,QAAQ,CAAC,cAAc,EAAE,8BAA8B,EAAE,CAAC,GAAG,CAAC,CAAC;SAC/D,MAAM,CAAC,UAAU,EAAE,4BAA4B,CAAC;SAChD,MAAM,CAAC,SAAS,EAAE,6CAA6C,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;SAC1C,MAAM,CAAC,SAAS,EAAE,iCAAiC,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,OAAiB,EAAE,OAAO,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAA,uBAAa,GAAE,CAAC;YACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAE1B,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;YAElD,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,IAAA,qBAAY,EAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,eAAe;YACf,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;gBAC3B,CAAC,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE;gBAC5B,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAE7D,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,IAAA,uBAAc,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,CAAC;YAED,iBAAiB;YACjB,MAAM,QAAQ,GAAS,OAAO,CAAC,WAAW,EAAE,CAAC;YAE7C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,sEAAsE;gBACtE,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG;wBACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,MAAM;wBAC5E,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM;wBACpE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM;wBACxE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,MAAM;qBACnE,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;wBACzB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;wBACnC,MAAM;wBACN,QAAQ,EAAE,EAAE,EAAE,sBAAsB;wBACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,cAAc,EAAE,mFAAmF;qBACpG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;wBACzB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAClC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;4BACf,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;4BACzB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;4BACjB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC;4BAChC,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;4BACpB,GAAG,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;4BACvC,YAAY,EAAE,CAAC,CAAC,YAAY;yBAC7B,CAAC,CAAC;wBACH,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC1B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,IAAA,0BAAiB,GAAE,CAAC,CAAC;gBACnC,CAAC;qBAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBAC/B,sDAAsD;oBACtD,OAAO,CAAC,GAAG,CAAC,IAAA,8BAAqB,EAAC,MAAM,CAAC,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,8BAA8B;oBAC9B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACtC,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAa,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC3C,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,IAAA,sBAAa,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,MAAM,iBAAiB,GAAG,IAAA,0BAAiB,EAAC,MAAM,CAAC,CAAC;YAEpD,IAAI,iBAAiB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,IAAA,4BAAmB,GAAE,CAAC,CAAC;gBACrC,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,IAAA,oBAAW,EAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -3,6 +3,7 @@ export declare function formatSeverity(severity: Severity): string;
3
3
  export declare function formatFinding(finding: Finding, cwd: string): string;
4
4
  export declare function formatSummary(result: ScanResult, userTier?: Tier): string;
5
5
  export declare function formatUpgradePrompt(restrictedCount: number): string;
6
+ export declare function formatFreeUserSummary(result: ScanResult): string;
6
7
  export declare function formatHeader(version: string): string;
7
8
  export declare function formatScanning(fileCount: number): string;
8
9
  export declare function formatSuccess(message: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAkC7E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAIzD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAmBnE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,CAmCzE;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAMnE;AA2BD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAUrD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAI7D"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAkC7E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAIzD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAmBnE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,CAmCzE;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAgChE;AA2BD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAUrD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAI7D"}
@@ -4,6 +4,7 @@ exports.formatSeverity = formatSeverity;
4
4
  exports.formatFinding = formatFinding;
5
5
  exports.formatSummary = formatSummary;
6
6
  exports.formatUpgradePrompt = formatUpgradePrompt;
7
+ exports.formatFreeUserSummary = formatFreeUserSummary;
7
8
  exports.formatHeader = formatHeader;
8
9
  exports.formatScanning = formatScanning;
9
10
  exports.formatSuccess = formatSuccess;
@@ -103,6 +104,33 @@ function formatUpgradePrompt(restrictedCount) {
103
104
  output += `${colors.dim}Run ${colors.reset}${colors.cyan}vibeguard upgrade${colors.reset}${colors.dim} to unlock framework-specific security rules${colors.reset}\n`;
104
105
  return output;
105
106
  }
107
+ function formatFreeUserSummary(result) {
108
+ const counts = {
109
+ critical: 0,
110
+ high: 0,
111
+ medium: 0,
112
+ low: 0,
113
+ };
114
+ for (const finding of result.findings) {
115
+ counts[finding.rule.severity]++;
116
+ }
117
+ const total = result.findings.length;
118
+ const grade = calculateGrade(counts);
119
+ let output = '\n';
120
+ output += `${colors.dim}─────────────────────────────────────────${colors.reset}\n`;
121
+ output += `Found ${colors.bold}${total}${colors.reset} issue${total !== 1 ? 's' : ''} `;
122
+ output += `(${colors.red}${counts.critical} critical${colors.reset}, `;
123
+ output += `${colors.yellow}${counts.high} high${colors.reset}, `;
124
+ output += `${colors.blue}${counts.medium} medium${colors.reset}, `;
125
+ output += `${colors.dim}${counts.low} low${colors.reset})\n\n`;
126
+ output += `Grade: ${formatGrade(grade)}\n`;
127
+ // Upgrade prompt for free users
128
+ output += '\n';
129
+ output += `${colors.magenta}${colors.bold}[PRO]${colors.reset} `;
130
+ output += `Upgrade to see individual findings with file locations and fix suggestions\n`;
131
+ output += `${colors.dim}Run ${colors.reset}${colors.cyan}vibeguard upgrade${colors.reset}${colors.dim} to unlock full scan details${colors.reset}\n`;
132
+ return output;
133
+ }
106
134
  function calculateGrade(counts) {
107
135
  if (counts.critical > 0)
108
136
  return 'F';
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAoBA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAmOpD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAoBA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAoPpD"}
@@ -89,7 +89,26 @@ async function startMcpServer() {
89
89
  ],
90
90
  };
91
91
  }
92
- // Format findings with restriction info
92
+ const counts = {
93
+ critical: result.findings.filter(f => f.rule.severity === 'critical').length,
94
+ high: result.findings.filter(f => f.rule.severity === 'high').length,
95
+ medium: result.findings.filter(f => f.rule.severity === 'medium').length,
96
+ low: result.findings.filter(f => f.rule.severity === 'low').length,
97
+ };
98
+ const grade = calculateGrade(counts);
99
+ const summary = `Found ${result.findings.length} issue(s): ${counts.critical} critical, ${counts.high} high, ${counts.medium} medium, ${counts.low} low`;
100
+ // Free tier: show counts only, no individual findings
101
+ if (userTier === 'free') {
102
+ return {
103
+ content: [
104
+ {
105
+ type: 'text',
106
+ text: `${summary}\n\nGrade: ${grade} | Tier: ${tierLabel}\n\nUpgrade to Pro to see individual findings with file locations and fix suggestions.\nRun 'vibeguard upgrade' to unlock full scan details.`,
107
+ },
108
+ ],
109
+ };
110
+ }
111
+ // Pro tier: show full details
93
112
  const findings = result.findings.map(f => ({
94
113
  severity: f.rule.severity,
95
114
  rule: f.rule.id,
@@ -100,15 +119,6 @@ async function startMcpServer() {
100
119
  fix: f.rule.fix,
101
120
  isRestricted: f.isRestricted,
102
121
  }));
103
- const counts = {
104
- critical: findings.filter(f => f.severity === 'critical').length,
105
- high: findings.filter(f => f.severity === 'high').length,
106
- medium: findings.filter(f => f.severity === 'medium').length,
107
- low: findings.filter(f => f.severity === 'low').length,
108
- };
109
- const grade = calculateGrade(counts);
110
- const restrictedCount = findings.filter(f => f.isRestricted).length;
111
- const summary = `Found ${findings.length} issue(s): ${counts.critical} critical, ${counts.high} high, ${counts.medium} medium, ${counts.low} low`;
112
122
  const formattedFindings = findings.map(f => {
113
123
  const proTag = f.isRestricted ? ' [PRO]' : '';
114
124
  const fixLine = f.isRestricted
@@ -116,10 +126,7 @@ async function startMcpServer() {
116
126
  : ` Fix: ${f.fix}`;
117
127
  return `[${f.severity.toUpperCase()}]${proTag} ${f.file}:${f.line}\n ${f.name}\n${fixLine}`;
118
128
  }).join('\n\n');
119
- let footer = `\nGrade: ${grade} | Tier: ${tierLabel}`;
120
- if (restrictedCount > 0 && userTier === 'free') {
121
- footer += `\n\n${restrictedCount} finding(s) require Pro to see fix details. Run 'vibeguard upgrade' to unlock.`;
122
- }
129
+ const footer = `\nGrade: ${grade} | Tier: ${tierLabel}`;
123
130
  return {
124
131
  content: [
125
132
  {
@@ -189,6 +196,26 @@ async function startMcpServer() {
189
196
  ],
190
197
  };
191
198
  }
199
+ const counts = {
200
+ critical: result.findings.filter(f => f.rule.severity === 'critical').length,
201
+ high: result.findings.filter(f => f.rule.severity === 'high').length,
202
+ medium: result.findings.filter(f => f.rule.severity === 'medium').length,
203
+ low: result.findings.filter(f => f.rule.severity === 'low').length,
204
+ };
205
+ const grade = calculateGrade(counts);
206
+ const summary = `Found ${result.findings.length} issue(s): ${counts.critical} critical, ${counts.high} high, ${counts.medium} medium, ${counts.low} low`;
207
+ // Free tier: show counts only, no individual findings
208
+ if (userTier === 'free') {
209
+ return {
210
+ content: [
211
+ {
212
+ type: 'text',
213
+ text: `${summary}\n\nGrade: ${grade} | Tier: ${tierLabel}\n\nUpgrade to Pro to see individual findings with line numbers and fix suggestions.`,
214
+ },
215
+ ],
216
+ };
217
+ }
218
+ // Pro tier: show full details
192
219
  const findings = result.findings.map(f => ({
193
220
  severity: f.rule.severity,
194
221
  rule: f.rule.id,
@@ -197,14 +224,6 @@ async function startMcpServer() {
197
224
  fix: f.rule.fix,
198
225
  isRestricted: f.isRestricted,
199
226
  }));
200
- const counts = {
201
- critical: findings.filter(f => f.severity === 'critical').length,
202
- high: findings.filter(f => f.severity === 'high').length,
203
- medium: findings.filter(f => f.severity === 'medium').length,
204
- low: findings.filter(f => f.severity === 'low').length,
205
- };
206
- const grade = calculateGrade(counts);
207
- const restrictedCount = findings.filter(f => f.isRestricted).length;
208
227
  const formatted = findings.map(f => {
209
228
  const proTag = f.isRestricted ? ' [PRO]' : '';
210
229
  const fixLine = f.isRestricted
@@ -212,10 +231,7 @@ async function startMcpServer() {
212
231
  : ` Fix: ${f.fix}`;
213
232
  return `[${f.severity.toUpperCase()}]${proTag} Line ${f.line}: ${f.name}\n${fixLine}`;
214
233
  }).join('\n\n');
215
- let footer = `\nGrade: ${grade} | Tier: ${tierLabel}`;
216
- if (restrictedCount > 0 && userTier === 'free') {
217
- footer += `\n\n${restrictedCount} finding(s) require Pro to see fix details.`;
218
- }
234
+ const footer = `\nGrade: ${grade} | Tier: ${tierLabel}`;
219
235
  return {
220
236
  content: [
221
237
  {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AA8B3E,qBAAa,OAAO;IAClB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,MAAM,GAAE,MAAW;IAIzB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpD,WAAW,IAAI,IAAI;IAIb,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAoC5C,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;YAuCzB,QAAQ;IA2CtB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,sBAAsB;IAO9B,QAAQ,IAAI,YAAY,EAAE;CAG3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAsE3E,qBAAa,OAAO;IAClB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,MAAM,GAAE,MAAW;IAIzB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpD,WAAW,IAAI,IAAI;IAIb,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAoC5C,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;YAuCzB,QAAQ;IA2CtB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,sBAAsB;IAO9B,QAAQ,IAAI,YAAY,EAAE;CAG3B"}
@@ -62,6 +62,40 @@ const DEFAULT_EXCLUDE = [
62
62
  '**/env/**',
63
63
  '**/*.min.js',
64
64
  '**/*.bundle.js',
65
+ // Test files
66
+ '**/*.test.js',
67
+ '**/*.test.ts',
68
+ '**/*.test.jsx',
69
+ '**/*.test.tsx',
70
+ '**/*.spec.js',
71
+ '**/*.spec.ts',
72
+ '**/*.spec.jsx',
73
+ '**/*.spec.tsx',
74
+ // Test directories
75
+ '**/__tests__/**',
76
+ '**/test/**',
77
+ '**/tests/**',
78
+ '**/spec/**',
79
+ // Fixtures and mocks
80
+ '**/fixtures/**',
81
+ '**/mocks/**',
82
+ '**/__mocks__/**',
83
+ '**/__fixtures__/**',
84
+ // Storybook
85
+ '**/*.stories.js',
86
+ '**/*.stories.ts',
87
+ '**/*.stories.jsx',
88
+ '**/*.stories.tsx',
89
+ '**/.storybook/**',
90
+ // E2E test tools
91
+ '**/cypress/**',
92
+ '**/playwright/**',
93
+ '**/*.e2e.js',
94
+ '**/*.e2e.ts',
95
+ // Dev configs (commonly have dummy values)
96
+ '**/jest.config.*',
97
+ '**/vitest.config.*',
98
+ '**/playwright.config.*',
65
99
  ];
66
100
  class Scanner {
67
101
  constructor(config = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indicated/vibeguard",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "Local CLI security scanner for AI-generated code",
5
5
  "main": "dist/cli/index.js",
6
6
  "bin": {
@@ -8,6 +8,7 @@ import {
8
8
  formatScanning,
9
9
  formatFinding,
10
10
  formatSummary,
11
+ formatFreeUserSummary,
11
12
  formatBlockedCommit,
12
13
  formatCleanResult,
13
14
  formatError,
@@ -48,30 +49,54 @@ export function createScanCommand(): Command {
48
49
  }
49
50
 
50
51
  // Output results
52
+ const userTier: Tier = scanner.getUserTier();
53
+
51
54
  if (options.json) {
52
- const userTier: Tier = scanner.getUserTier();
53
- console.log(JSON.stringify({
54
- version: packageJson.version,
55
- tier: userTier,
56
- files: result.files,
57
- findings: result.findings.map(f => ({
58
- rule: f.rule.id,
59
- severity: f.rule.severity,
60
- tier: f.rule.tier,
61
- file: path.relative(cwd, f.file),
62
- line: f.line,
63
- column: f.column,
64
- message: f.rule.name,
65
- fix: f.isRestricted ? null : f.rule.fix,
66
- isRestricted: f.isRestricted,
67
- })),
68
- duration: result.duration,
69
- }, null, 2));
55
+ // For free tier, only include counts in JSON, not individual findings
56
+ if (userTier === 'free') {
57
+ const counts = {
58
+ critical: result.findings.filter(f => f.rule.severity === 'critical').length,
59
+ high: result.findings.filter(f => f.rule.severity === 'high').length,
60
+ medium: result.findings.filter(f => f.rule.severity === 'medium').length,
61
+ low: result.findings.filter(f => f.rule.severity === 'low').length,
62
+ };
63
+ console.log(JSON.stringify({
64
+ version: packageJson.version,
65
+ tier: userTier,
66
+ files: result.files,
67
+ totalIssues: result.findings.length,
68
+ counts,
69
+ findings: [], // Empty for free tier
70
+ duration: result.duration,
71
+ upgradeMessage: 'Upgrade to Pro to see individual findings with file locations and fix suggestions',
72
+ }, null, 2));
73
+ } else {
74
+ console.log(JSON.stringify({
75
+ version: packageJson.version,
76
+ tier: userTier,
77
+ files: result.files,
78
+ findings: result.findings.map(f => ({
79
+ rule: f.rule.id,
80
+ severity: f.rule.severity,
81
+ tier: f.rule.tier,
82
+ file: path.relative(cwd, f.file),
83
+ line: f.line,
84
+ column: f.column,
85
+ message: f.rule.name,
86
+ fix: f.isRestricted ? null : f.rule.fix,
87
+ isRestricted: f.isRestricted,
88
+ })),
89
+ duration: result.duration,
90
+ }, null, 2));
91
+ }
70
92
  } else if (!options.quiet) {
71
93
  if (result.findings.length === 0) {
72
94
  console.log(formatCleanResult());
95
+ } else if (userTier === 'free') {
96
+ // Free tier: show counts only, no individual findings
97
+ console.log(formatFreeUserSummary(result));
73
98
  } else {
74
- const userTier: Tier = scanner.getUserTier();
99
+ // Pro tier: show full details
75
100
  for (const finding of result.findings) {
76
101
  console.log(formatFinding(finding, cwd));
77
102
  }
package/src/cli/output.ts CHANGED
@@ -104,6 +104,40 @@ export function formatUpgradePrompt(restrictedCount: number): string {
104
104
  return output;
105
105
  }
106
106
 
107
+ export function formatFreeUserSummary(result: ScanResult): string {
108
+ const counts = {
109
+ critical: 0,
110
+ high: 0,
111
+ medium: 0,
112
+ low: 0,
113
+ };
114
+
115
+ for (const finding of result.findings) {
116
+ counts[finding.rule.severity]++;
117
+ }
118
+
119
+ const total = result.findings.length;
120
+ const grade = calculateGrade(counts);
121
+
122
+ let output = '\n';
123
+ output += `${colors.dim}─────────────────────────────────────────${colors.reset}\n`;
124
+ output += `Found ${colors.bold}${total}${colors.reset} issue${total !== 1 ? 's' : ''} `;
125
+ output += `(${colors.red}${counts.critical} critical${colors.reset}, `;
126
+ output += `${colors.yellow}${counts.high} high${colors.reset}, `;
127
+ output += `${colors.blue}${counts.medium} medium${colors.reset}, `;
128
+ output += `${colors.dim}${counts.low} low${colors.reset})\n\n`;
129
+
130
+ output += `Grade: ${formatGrade(grade)}\n`;
131
+
132
+ // Upgrade prompt for free users
133
+ output += '\n';
134
+ output += `${colors.magenta}${colors.bold}[PRO]${colors.reset} `;
135
+ output += `Upgrade to see individual findings with file locations and fix suggestions\n`;
136
+ output += `${colors.dim}Run ${colors.reset}${colors.cyan}vibeguard upgrade${colors.reset}${colors.dim} to unlock full scan details${colors.reset}\n`;
137
+
138
+ return output;
139
+ }
140
+
107
141
  function calculateGrade(counts: Record<Severity, number>): string {
108
142
  if (counts.critical > 0) return 'F';
109
143
  if (counts.high > 2) return 'D';
package/src/mcp/server.ts CHANGED
@@ -59,7 +59,29 @@ export async function startMcpServer(): Promise<void> {
59
59
  };
60
60
  }
61
61
 
62
- // Format findings with restriction info
62
+ const counts: Record<Severity, number> = {
63
+ critical: result.findings.filter(f => f.rule.severity === 'critical').length,
64
+ high: result.findings.filter(f => f.rule.severity === 'high').length,
65
+ medium: result.findings.filter(f => f.rule.severity === 'medium').length,
66
+ low: result.findings.filter(f => f.rule.severity === 'low').length,
67
+ };
68
+
69
+ const grade = calculateGrade(counts);
70
+ const summary = `Found ${result.findings.length} issue(s): ${counts.critical} critical, ${counts.high} high, ${counts.medium} medium, ${counts.low} low`;
71
+
72
+ // Free tier: show counts only, no individual findings
73
+ if (userTier === 'free') {
74
+ return {
75
+ content: [
76
+ {
77
+ type: 'text' as const,
78
+ text: `${summary}\n\nGrade: ${grade} | Tier: ${tierLabel}\n\nUpgrade to Pro to see individual findings with file locations and fix suggestions.\nRun 'vibeguard upgrade' to unlock full scan details.`,
79
+ },
80
+ ],
81
+ };
82
+ }
83
+
84
+ // Pro tier: show full details
63
85
  const findings = result.findings.map(f => ({
64
86
  severity: f.rule.severity,
65
87
  rule: f.rule.id,
@@ -71,18 +93,6 @@ export async function startMcpServer(): Promise<void> {
71
93
  isRestricted: f.isRestricted,
72
94
  }));
73
95
 
74
- const counts: Record<Severity, number> = {
75
- critical: findings.filter(f => f.severity === 'critical').length,
76
- high: findings.filter(f => f.severity === 'high').length,
77
- medium: findings.filter(f => f.severity === 'medium').length,
78
- low: findings.filter(f => f.severity === 'low').length,
79
- };
80
-
81
- const grade = calculateGrade(counts);
82
- const restrictedCount = findings.filter(f => f.isRestricted).length;
83
-
84
- const summary = `Found ${findings.length} issue(s): ${counts.critical} critical, ${counts.high} high, ${counts.medium} medium, ${counts.low} low`;
85
-
86
96
  const formattedFindings = findings.map(f => {
87
97
  const proTag = f.isRestricted ? ' [PRO]' : '';
88
98
  const fixLine = f.isRestricted
@@ -91,10 +101,7 @@ export async function startMcpServer(): Promise<void> {
91
101
  return `[${f.severity.toUpperCase()}]${proTag} ${f.file}:${f.line}\n ${f.name}\n${fixLine}`;
92
102
  }).join('\n\n');
93
103
 
94
- let footer = `\nGrade: ${grade} | Tier: ${tierLabel}`;
95
- if (restrictedCount > 0 && userTier === 'free') {
96
- footer += `\n\n${restrictedCount} finding(s) require Pro to see fix details. Run 'vibeguard upgrade' to unlock.`;
97
- }
104
+ const footer = `\nGrade: ${grade} | Tier: ${tierLabel}`;
98
105
 
99
106
  return {
100
107
  content: [
@@ -188,6 +195,29 @@ export async function startMcpServer(): Promise<void> {
188
195
  };
189
196
  }
190
197
 
198
+ const counts: Record<Severity, number> = {
199
+ critical: result.findings.filter(f => f.rule.severity === 'critical').length,
200
+ high: result.findings.filter(f => f.rule.severity === 'high').length,
201
+ medium: result.findings.filter(f => f.rule.severity === 'medium').length,
202
+ low: result.findings.filter(f => f.rule.severity === 'low').length,
203
+ };
204
+
205
+ const grade = calculateGrade(counts);
206
+ const summary = `Found ${result.findings.length} issue(s): ${counts.critical} critical, ${counts.high} high, ${counts.medium} medium, ${counts.low} low`;
207
+
208
+ // Free tier: show counts only, no individual findings
209
+ if (userTier === 'free') {
210
+ return {
211
+ content: [
212
+ {
213
+ type: 'text' as const,
214
+ text: `${summary}\n\nGrade: ${grade} | Tier: ${tierLabel}\n\nUpgrade to Pro to see individual findings with line numbers and fix suggestions.`,
215
+ },
216
+ ],
217
+ };
218
+ }
219
+
220
+ // Pro tier: show full details
191
221
  const findings = result.findings.map(f => ({
192
222
  severity: f.rule.severity,
193
223
  rule: f.rule.id,
@@ -197,16 +227,6 @@ export async function startMcpServer(): Promise<void> {
197
227
  isRestricted: f.isRestricted,
198
228
  }));
199
229
 
200
- const counts: Record<Severity, number> = {
201
- critical: findings.filter(f => f.severity === 'critical').length,
202
- high: findings.filter(f => f.severity === 'high').length,
203
- medium: findings.filter(f => f.severity === 'medium').length,
204
- low: findings.filter(f => f.severity === 'low').length,
205
- };
206
-
207
- const grade = calculateGrade(counts);
208
- const restrictedCount = findings.filter(f => f.isRestricted).length;
209
-
210
230
  const formatted = findings.map(f => {
211
231
  const proTag = f.isRestricted ? ' [PRO]' : '';
212
232
  const fixLine = f.isRestricted
@@ -215,10 +235,7 @@ export async function startMcpServer(): Promise<void> {
215
235
  return `[${f.severity.toUpperCase()}]${proTag} Line ${f.line}: ${f.name}\n${fixLine}`;
216
236
  }).join('\n\n');
217
237
 
218
- let footer = `\nGrade: ${grade} | Tier: ${tierLabel}`;
219
- if (restrictedCount > 0 && userTier === 'free') {
220
- footer += `\n\n${restrictedCount} finding(s) require Pro to see fix details.`;
221
- }
238
+ const footer = `\nGrade: ${grade} | Tier: ${tierLabel}`;
222
239
 
223
240
  return {
224
241
  content: [
@@ -29,6 +29,46 @@ const DEFAULT_EXCLUDE = [
29
29
  '**/env/**',
30
30
  '**/*.min.js',
31
31
  '**/*.bundle.js',
32
+
33
+ // Test files
34
+ '**/*.test.js',
35
+ '**/*.test.ts',
36
+ '**/*.test.jsx',
37
+ '**/*.test.tsx',
38
+ '**/*.spec.js',
39
+ '**/*.spec.ts',
40
+ '**/*.spec.jsx',
41
+ '**/*.spec.tsx',
42
+
43
+ // Test directories
44
+ '**/__tests__/**',
45
+ '**/test/**',
46
+ '**/tests/**',
47
+ '**/spec/**',
48
+
49
+ // Fixtures and mocks
50
+ '**/fixtures/**',
51
+ '**/mocks/**',
52
+ '**/__mocks__/**',
53
+ '**/__fixtures__/**',
54
+
55
+ // Storybook
56
+ '**/*.stories.js',
57
+ '**/*.stories.ts',
58
+ '**/*.stories.jsx',
59
+ '**/*.stories.tsx',
60
+ '**/.storybook/**',
61
+
62
+ // E2E test tools
63
+ '**/cypress/**',
64
+ '**/playwright/**',
65
+ '**/*.e2e.js',
66
+ '**/*.e2e.ts',
67
+
68
+ // Dev configs (commonly have dummy values)
69
+ '**/jest.config.*',
70
+ '**/vitest.config.*',
71
+ '**/playwright.config.*',
32
72
  ];
33
73
 
34
74
  export class Scanner {