@vibecheckai/cli 3.5.0 → 3.5.2

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 (224) hide show
  1. package/bin/registry.js +214 -237
  2. package/bin/runners/cli-utils.js +33 -2
  3. package/bin/runners/context/analyzer.js +52 -1
  4. package/bin/runners/context/generators/cursor.js +2 -49
  5. package/bin/runners/context/git-context.js +3 -1
  6. package/bin/runners/context/team-conventions.js +33 -7
  7. package/bin/runners/lib/analysis-core.js +25 -5
  8. package/bin/runners/lib/analyzers.js +431 -481
  9. package/bin/runners/lib/default-config.js +127 -0
  10. package/bin/runners/lib/doctor/modules/security.js +3 -1
  11. package/bin/runners/lib/engine/ast-cache.js +210 -0
  12. package/bin/runners/lib/engine/auth-extractor.js +211 -0
  13. package/bin/runners/lib/engine/billing-extractor.js +112 -0
  14. package/bin/runners/lib/engine/enforcement-extractor.js +100 -0
  15. package/bin/runners/lib/engine/env-extractor.js +207 -0
  16. package/bin/runners/lib/engine/express-extractor.js +208 -0
  17. package/bin/runners/lib/engine/extractors.js +849 -0
  18. package/bin/runners/lib/engine/index.js +207 -0
  19. package/bin/runners/lib/engine/repo-index.js +514 -0
  20. package/bin/runners/lib/engine/types.js +124 -0
  21. package/bin/runners/lib/engines/accessibility-engine.js +18 -218
  22. package/bin/runners/lib/engines/api-consistency-engine.js +30 -335
  23. package/bin/runners/lib/engines/cross-file-analysis-engine.js +27 -292
  24. package/bin/runners/lib/engines/empty-catch-engine.js +17 -127
  25. package/bin/runners/lib/engines/mock-data-engine.js +10 -53
  26. package/bin/runners/lib/engines/performance-issues-engine.js +36 -176
  27. package/bin/runners/lib/engines/security-vulnerabilities-engine.js +54 -382
  28. package/bin/runners/lib/engines/type-aware-engine.js +39 -263
  29. package/bin/runners/lib/engines/vibecheck-engines/index.js +13 -122
  30. package/bin/runners/lib/engines/vibecheck-engines/lib/ast-cache.js +164 -0
  31. package/bin/runners/lib/engines/vibecheck-engines/lib/code-quality-engine.js +291 -0
  32. package/bin/runners/lib/engines/vibecheck-engines/lib/console-logs-engine.js +83 -0
  33. package/bin/runners/lib/engines/vibecheck-engines/lib/dead-code-engine.js +198 -0
  34. package/bin/runners/lib/engines/vibecheck-engines/lib/deprecated-api-engine.js +275 -0
  35. package/bin/runners/lib/engines/vibecheck-engines/lib/empty-catch-engine.js +167 -0
  36. package/bin/runners/lib/engines/vibecheck-engines/lib/file-filter.js +217 -0
  37. package/bin/runners/lib/engines/vibecheck-engines/lib/hardcoded-secrets-engine.js +73 -373
  38. package/bin/runners/lib/engines/vibecheck-engines/lib/mock-data-engine.js +140 -0
  39. package/bin/runners/lib/engines/vibecheck-engines/lib/parallel-processor.js +164 -0
  40. package/bin/runners/lib/engines/vibecheck-engines/lib/performance-issues-engine.js +234 -0
  41. package/bin/runners/lib/engines/vibecheck-engines/lib/type-aware-engine.js +217 -0
  42. package/bin/runners/lib/engines/vibecheck-engines/lib/unsafe-regex-engine.js +78 -0
  43. package/bin/runners/lib/entitlements-v2.js +73 -97
  44. package/bin/runners/lib/error-handler.js +44 -3
  45. package/bin/runners/lib/error-messages.js +289 -0
  46. package/bin/runners/lib/evidence-pack.js +7 -1
  47. package/bin/runners/lib/finding-id.js +69 -0
  48. package/bin/runners/lib/finding-sorter.js +89 -0
  49. package/bin/runners/lib/html-proof-report.js +700 -350
  50. package/bin/runners/lib/missions/plan.js +6 -46
  51. package/bin/runners/lib/missions/templates.js +0 -232
  52. package/bin/runners/lib/next-action.js +560 -0
  53. package/bin/runners/lib/prerequisites.js +149 -0
  54. package/bin/runners/lib/route-detection.js +137 -68
  55. package/bin/runners/lib/scan-output.js +91 -76
  56. package/bin/runners/lib/scan-runner.js +135 -0
  57. package/bin/runners/lib/schemas/ajv-validator.js +464 -0
  58. package/bin/runners/lib/schemas/error-envelope.schema.json +105 -0
  59. package/bin/runners/lib/schemas/finding-v3.schema.json +151 -0
  60. package/bin/runners/lib/schemas/report-artifact.schema.json +120 -0
  61. package/bin/runners/lib/schemas/run-request.schema.json +108 -0
  62. package/bin/runners/lib/schemas/validator.js +27 -0
  63. package/bin/runners/lib/schemas/verdict.schema.json +140 -0
  64. package/bin/runners/lib/ship-output-enterprise.js +23 -23
  65. package/bin/runners/lib/ship-output.js +75 -31
  66. package/bin/runners/lib/terminal-ui.js +6 -113
  67. package/bin/runners/lib/truth.js +351 -10
  68. package/bin/runners/lib/unified-cli-output.js +430 -603
  69. package/bin/runners/lib/unified-output.js +13 -9
  70. package/bin/runners/runAIAgent.js +10 -5
  71. package/bin/runners/runAgent.js +0 -3
  72. package/bin/runners/runAllowlist.js +389 -0
  73. package/bin/runners/runApprove.js +0 -33
  74. package/bin/runners/runAuth.js +73 -45
  75. package/bin/runners/runCheckpoint.js +51 -11
  76. package/bin/runners/runClassify.js +85 -21
  77. package/bin/runners/runContext.js +0 -3
  78. package/bin/runners/runDoctor.js +41 -28
  79. package/bin/runners/runEvidencePack.js +362 -0
  80. package/bin/runners/runFirewall.js +0 -3
  81. package/bin/runners/runFirewallHook.js +0 -3
  82. package/bin/runners/runFix.js +66 -76
  83. package/bin/runners/runGuard.js +18 -411
  84. package/bin/runners/runInit.js +113 -30
  85. package/bin/runners/runLabs.js +424 -0
  86. package/bin/runners/runMcp.js +19 -25
  87. package/bin/runners/runPolish.js +64 -240
  88. package/bin/runners/runPromptFirewall.js +12 -5
  89. package/bin/runners/runProve.js +57 -22
  90. package/bin/runners/runQuickstart.js +531 -0
  91. package/bin/runners/runReality.js +59 -68
  92. package/bin/runners/runReport.js +38 -33
  93. package/bin/runners/runRuntime.js +8 -5
  94. package/bin/runners/runScan.js +1413 -190
  95. package/bin/runners/runShip.js +113 -719
  96. package/bin/runners/runTruth.js +0 -3
  97. package/bin/runners/runValidate.js +13 -9
  98. package/bin/runners/runWatch.js +23 -14
  99. package/bin/scan.js +6 -1
  100. package/bin/vibecheck.js +204 -185
  101. package/mcp-server/deprecation-middleware.js +282 -0
  102. package/mcp-server/handlers/index.ts +15 -0
  103. package/mcp-server/handlers/tool-handler.ts +554 -0
  104. package/mcp-server/index-v1.js +698 -0
  105. package/mcp-server/index.js +210 -238
  106. package/mcp-server/lib/cache-wrapper.cjs +383 -0
  107. package/mcp-server/lib/error-envelope.js +138 -0
  108. package/mcp-server/lib/executor.ts +499 -0
  109. package/mcp-server/lib/index.ts +19 -0
  110. package/mcp-server/lib/rate-limiter.js +166 -0
  111. package/mcp-server/lib/sandbox.test.ts +519 -0
  112. package/mcp-server/lib/sandbox.ts +395 -0
  113. package/mcp-server/lib/types.ts +267 -0
  114. package/mcp-server/package.json +12 -3
  115. package/mcp-server/registry/tool-registry.js +794 -0
  116. package/mcp-server/registry/tools.json +605 -0
  117. package/mcp-server/registry.test.ts +334 -0
  118. package/mcp-server/tests/tier-gating.test.js +297 -0
  119. package/mcp-server/tier-auth.js +378 -45
  120. package/mcp-server/tools-v3.js +353 -442
  121. package/mcp-server/tsconfig.json +37 -0
  122. package/mcp-server/vibecheck-2.0-tools.js +14 -1
  123. package/package.json +1 -1
  124. package/bin/runners/lib/agent-firewall/learning/learning-engine.js +0 -849
  125. package/bin/runners/lib/audit-logger.js +0 -532
  126. package/bin/runners/lib/authority/authorities/architecture.js +0 -364
  127. package/bin/runners/lib/authority/authorities/compliance.js +0 -341
  128. package/bin/runners/lib/authority/authorities/human.js +0 -343
  129. package/bin/runners/lib/authority/authorities/quality.js +0 -420
  130. package/bin/runners/lib/authority/authorities/security.js +0 -228
  131. package/bin/runners/lib/authority/index.js +0 -293
  132. package/bin/runners/lib/bundle/bundle-intelligence.js +0 -846
  133. package/bin/runners/lib/cli-charts.js +0 -368
  134. package/bin/runners/lib/cli-config-display.js +0 -405
  135. package/bin/runners/lib/cli-demo.js +0 -275
  136. package/bin/runners/lib/cli-errors.js +0 -438
  137. package/bin/runners/lib/cli-help-formatter.js +0 -439
  138. package/bin/runners/lib/cli-interactive-menu.js +0 -509
  139. package/bin/runners/lib/cli-prompts.js +0 -441
  140. package/bin/runners/lib/cli-scan-cards.js +0 -362
  141. package/bin/runners/lib/compliance-reporter.js +0 -710
  142. package/bin/runners/lib/conductor/index.js +0 -671
  143. package/bin/runners/lib/easy/README.md +0 -123
  144. package/bin/runners/lib/easy/index.js +0 -140
  145. package/bin/runners/lib/easy/interactive-wizard.js +0 -788
  146. package/bin/runners/lib/easy/one-click-firewall.js +0 -564
  147. package/bin/runners/lib/easy/zero-config-reality.js +0 -714
  148. package/bin/runners/lib/engines/async-patterns-engine.js +0 -444
  149. package/bin/runners/lib/engines/bundle-size-engine.js +0 -433
  150. package/bin/runners/lib/engines/confidence-scoring.js +0 -276
  151. package/bin/runners/lib/engines/context-detection.js +0 -264
  152. package/bin/runners/lib/engines/database-patterns-engine.js +0 -429
  153. package/bin/runners/lib/engines/duplicate-code-engine.js +0 -354
  154. package/bin/runners/lib/engines/env-variables-engine.js +0 -458
  155. package/bin/runners/lib/engines/error-handling-engine.js +0 -437
  156. package/bin/runners/lib/engines/false-positive-prevention.js +0 -630
  157. package/bin/runners/lib/engines/framework-adapters/index.js +0 -607
  158. package/bin/runners/lib/engines/framework-detection.js +0 -508
  159. package/bin/runners/lib/engines/import-order-engine.js +0 -429
  160. package/bin/runners/lib/engines/naming-conventions-engine.js +0 -544
  161. package/bin/runners/lib/engines/noise-reduction-engine.js +0 -452
  162. package/bin/runners/lib/engines/orchestrator.js +0 -334
  163. package/bin/runners/lib/engines/react-patterns-engine.js +0 -457
  164. package/bin/runners/lib/engines/vibecheck-engines/lib/ai-hallucination-engine.js +0 -806
  165. package/bin/runners/lib/engines/vibecheck-engines/lib/smart-fix-engine.js +0 -577
  166. package/bin/runners/lib/engines/vibecheck-engines/lib/vibe-score-engine.js +0 -543
  167. package/bin/runners/lib/engines/vibecheck-engines.js +0 -514
  168. package/bin/runners/lib/enhanced-features/index.js +0 -305
  169. package/bin/runners/lib/enhanced-output.js +0 -631
  170. package/bin/runners/lib/enterprise.js +0 -300
  171. package/bin/runners/lib/firewall/command-validator.js +0 -351
  172. package/bin/runners/lib/firewall/config.js +0 -341
  173. package/bin/runners/lib/firewall/content-validator.js +0 -519
  174. package/bin/runners/lib/firewall/index.js +0 -101
  175. package/bin/runners/lib/firewall/path-validator.js +0 -256
  176. package/bin/runners/lib/intelligence/cross-repo-intelligence.js +0 -817
  177. package/bin/runners/lib/mcp-utils.js +0 -425
  178. package/bin/runners/lib/output/index.js +0 -1022
  179. package/bin/runners/lib/policy-engine.js +0 -652
  180. package/bin/runners/lib/polish/autofix/accessibility-fixes.js +0 -333
  181. package/bin/runners/lib/polish/autofix/async-handlers.js +0 -273
  182. package/bin/runners/lib/polish/autofix/dead-code.js +0 -280
  183. package/bin/runners/lib/polish/autofix/imports-optimizer.js +0 -344
  184. package/bin/runners/lib/polish/autofix/index.js +0 -200
  185. package/bin/runners/lib/polish/autofix/remove-consoles.js +0 -209
  186. package/bin/runners/lib/polish/autofix/strengthen-types.js +0 -245
  187. package/bin/runners/lib/polish/backend-checks.js +0 -148
  188. package/bin/runners/lib/polish/documentation-checks.js +0 -111
  189. package/bin/runners/lib/polish/frontend-checks.js +0 -168
  190. package/bin/runners/lib/polish/index.js +0 -71
  191. package/bin/runners/lib/polish/infrastructure-checks.js +0 -131
  192. package/bin/runners/lib/polish/library-detection.js +0 -175
  193. package/bin/runners/lib/polish/performance-checks.js +0 -100
  194. package/bin/runners/lib/polish/security-checks.js +0 -148
  195. package/bin/runners/lib/polish/utils.js +0 -203
  196. package/bin/runners/lib/prompt-builder.js +0 -540
  197. package/bin/runners/lib/proof-certificate.js +0 -634
  198. package/bin/runners/lib/reality/accessibility-audit.js +0 -946
  199. package/bin/runners/lib/reality/api-contract-validator.js +0 -1012
  200. package/bin/runners/lib/reality/chaos-engineering.js +0 -1084
  201. package/bin/runners/lib/reality/performance-tracker.js +0 -1077
  202. package/bin/runners/lib/reality/scenario-generator.js +0 -1404
  203. package/bin/runners/lib/reality/visual-regression.js +0 -852
  204. package/bin/runners/lib/reality-profiler.js +0 -717
  205. package/bin/runners/lib/replay/flight-recorder-viewer.js +0 -1160
  206. package/bin/runners/lib/review/ai-code-review.js +0 -832
  207. package/bin/runners/lib/rules/custom-rule-engine.js +0 -985
  208. package/bin/runners/lib/sbom-generator.js +0 -641
  209. package/bin/runners/lib/scan-output-enhanced.js +0 -512
  210. package/bin/runners/lib/security/owasp-scanner.js +0 -939
  211. package/bin/runners/lib/validators/contract-validator.js +0 -283
  212. package/bin/runners/lib/validators/dead-export-detector.js +0 -279
  213. package/bin/runners/lib/validators/dep-audit.js +0 -245
  214. package/bin/runners/lib/validators/env-validator.js +0 -319
  215. package/bin/runners/lib/validators/index.js +0 -120
  216. package/bin/runners/lib/validators/license-checker.js +0 -252
  217. package/bin/runners/lib/validators/route-validator.js +0 -290
  218. package/bin/runners/runAuthority.js +0 -528
  219. package/bin/runners/runConductor.js +0 -772
  220. package/bin/runners/runContainer.js +0 -366
  221. package/bin/runners/runEasy.js +0 -410
  222. package/bin/runners/runIaC.js +0 -372
  223. package/bin/runners/runVibe.js +0 -791
  224. package/mcp-server/tools.js +0 -495
@@ -1,439 +0,0 @@
1
- /**
2
- * CLI Help Formatter - Consistent, beautiful help output for all Vibecheck commands
3
- *
4
- * Provides standardized help formatting including:
5
- * - Command usage and aliases
6
- * - Categorized options with tier badges
7
- * - Examples with syntax highlighting
8
- * - Exit codes documentation
9
- * - Links to documentation
10
- */
11
-
12
- "use strict";
13
-
14
- const {
15
- ansi,
16
- sym,
17
- box,
18
- TIER_LABELS,
19
- padRight,
20
- visibleLength,
21
- } = require("./unified-cli-output");
22
-
23
- // ═══════════════════════════════════════════════════════════════════════════════
24
- // CONFIGURATION
25
- // ═══════════════════════════════════════════════════════════════════════════════
26
-
27
- const HELP_WIDTH = 72;
28
- const OPTION_INDENT = 4;
29
- const DESC_INDENT = 22;
30
-
31
- // ═══════════════════════════════════════════════════════════════════════════════
32
- // HELP BUILDER CLASS
33
- // ═══════════════════════════════════════════════════════════════════════════════
34
-
35
- class HelpBuilder {
36
- constructor(command) {
37
- this.command = command;
38
- this.sections = [];
39
- }
40
-
41
- usage(usage, aliases) {
42
- this.usageText = usage;
43
- this.aliasesText = aliases;
44
- return this;
45
- }
46
-
47
- description(desc) {
48
- this.descriptionText = desc;
49
- return this;
50
- }
51
-
52
- section(title, items) {
53
- this.sections.push({ title, items });
54
- return this;
55
- }
56
-
57
- options(items) {
58
- return this.section('OPTIONS', items);
59
- }
60
-
61
- examples(items) {
62
- return this.section('EXAMPLES', items.map(ex => ({
63
- name: ex.comment || '',
64
- description: ex.command,
65
- isExample: true,
66
- })));
67
- }
68
-
69
- exitCodes(codes) {
70
- return this.section('EXIT CODES', codes.map(c => ({
71
- name: String(c.code),
72
- description: c.description,
73
- isExitCode: true,
74
- color: c.color,
75
- })));
76
- }
77
-
78
- footer(text) {
79
- this.footerText = text;
80
- return this;
81
- }
82
-
83
- docLink(url) {
84
- this.docUrl = url;
85
- return this;
86
- }
87
-
88
- build() {
89
- const lines = [];
90
-
91
- // Usage
92
- lines.push('');
93
- lines.push(` ${ansi.bold}USAGE${ansi.reset}`);
94
- lines.push(` ${ansi.cyan}${this.usageText}${ansi.reset}`);
95
-
96
- if (this.aliasesText) {
97
- lines.push(` ${ansi.dim}Aliases: ${this.aliasesText}${ansi.reset}`);
98
- }
99
-
100
- // Description
101
- if (this.descriptionText) {
102
- lines.push('');
103
- // Word wrap description
104
- const words = this.descriptionText.split(' ');
105
- let currentLine = ' ';
106
- for (const word of words) {
107
- if (currentLine.length + word.length + 1 > HELP_WIDTH) {
108
- lines.push(currentLine);
109
- currentLine = ' ' + word;
110
- } else {
111
- currentLine += (currentLine === ' ' ? '' : ' ') + word;
112
- }
113
- }
114
- if (currentLine !== ' ') lines.push(currentLine);
115
- }
116
-
117
- // Sections
118
- for (const section of this.sections) {
119
- lines.push('');
120
- lines.push(` ${ansi.bold}${section.title}${ansi.reset}`);
121
-
122
- for (const item of section.items) {
123
- if (item.isExample) {
124
- // Example formatting
125
- if (item.name) {
126
- lines.push(` ${ansi.dim}# ${item.name}${ansi.reset}`);
127
- }
128
- lines.push(` ${ansi.cyan}${item.description}${ansi.reset}`);
129
- } else if (item.isExitCode) {
130
- // Exit code formatting
131
- const color = item.color || ansi.reset;
132
- lines.push(` ${color}${item.name}${ansi.reset} ${item.description}`);
133
- } else {
134
- // Option formatting
135
- const tierBadge = item.tier && item.tier !== 'free'
136
- ? ` ${ansi.dim}[${TIER_LABELS[item.tier]}]${ansi.reset}`
137
- : '';
138
- const nameStr = `${ansi.cyan}${item.name}${ansi.reset}`;
139
- const paddedName = padRight(item.name, DESC_INDENT - OPTION_INDENT);
140
- lines.push(` ${ansi.cyan}${paddedName}${ansi.reset}${item.description}${tierBadge}`);
141
- }
142
- }
143
- }
144
-
145
- // Footer
146
- if (this.footerText) {
147
- lines.push('');
148
- lines.push(` ${this.footerText}`);
149
- }
150
-
151
- // Documentation link
152
- if (this.docUrl) {
153
- lines.push('');
154
- lines.push(` ${ansi.dim}${box.horizontal.repeat(HELP_WIDTH - 4)}${ansi.reset}`);
155
- lines.push(` ${ansi.dim}Documentation: ${this.docUrl}${ansi.reset}`);
156
- }
157
-
158
- lines.push('');
159
-
160
- return lines.join('\n');
161
- }
162
- }
163
-
164
- // ═══════════════════════════════════════════════════════════════════════════════
165
- // PREDEFINED HELP TEMPLATES
166
- // ═══════════════════════════════════════════════════════════════════════════════
167
-
168
- const helpTemplates = {
169
- scan: new HelpBuilder('scan')
170
- .usage('vibecheck scan [path] [options]', 's, check')
171
- .description('The core analysis engine. Scans your codebase for route integrity issues, security vulnerabilities, code quality problems, and mock data detection.')
172
- .section('SCAN LAYERS', [
173
- { name: '(default)', description: 'Layer 1: AST static analysis (fast, ~2s)' },
174
- { name: '--truth, -t', description: 'Layer 1+2: + build manifest verification' },
175
- { name: '--reality, -r', description: 'Layer 1+2+3: + Playwright runtime proof', tier: 'pro' },
176
- ])
177
- .options([
178
- { name: '--path, -p <path>', description: 'Project path (default: current directory)' },
179
- { name: '--json', description: 'Output JSON report only (CI integration)' },
180
- { name: '--sarif', description: 'Output SARIF format for code scanning' },
181
- { name: '--autofix, -f', description: 'Generate fix missions for issues', tier: 'pro' },
182
- { name: '--baseline', description: 'Compare against previous scan baseline' },
183
- { name: '--quiet, -q', description: 'Suppress non-essential output' },
184
- { name: '--verbose, -v', description: 'Show detailed output' },
185
- ])
186
- .examples([
187
- { comment: 'Quick scan', command: 'vibecheck scan' },
188
- { comment: 'With truth verification', command: 'vibecheck scan --truth' },
189
- { comment: 'CI pipeline (JSON)', command: 'vibecheck scan --json' },
190
- { comment: 'Specific directory', command: 'vibecheck scan ./src' },
191
- ])
192
- .exitCodes([
193
- { code: 0, description: 'SHIP - Ready to deploy', color: ansi.green },
194
- { code: 1, description: 'WARN - Review recommended', color: ansi.yellow },
195
- { code: 2, description: 'BLOCK - Critical issues found', color: ansi.red },
196
- ])
197
- .docLink('https://docs.vibecheckai.dev/cli/scan')
198
- .build(),
199
-
200
- ship: new HelpBuilder('ship')
201
- .usage('vibecheck ship [path] [options]', 'go, deploy')
202
- .description('The one command to ship with confidence. Runs comprehensive checks and gives you a clear SHIP/WARN/BLOCK verdict with actionable insights.')
203
- .options([
204
- { name: '--path, -p <path>', description: 'Project path (default: current directory)' },
205
- { name: '--json', description: 'Output JSON report only' },
206
- { name: '--badge', description: 'Generate embeddable badge', tier: 'pro' },
207
- { name: '--quiet, -q', description: 'Suppress non-essential output' },
208
- { name: '--strict', description: 'Fail on warnings (default: fail on blocks only)' },
209
- ])
210
- .examples([
211
- { comment: 'Ship check', command: 'vibecheck ship' },
212
- { comment: 'Generate badge', command: 'vibecheck ship --badge' },
213
- { comment: 'CI pipeline', command: 'vibecheck ship --json --strict' },
214
- ])
215
- .exitCodes([
216
- { code: 0, description: 'SHIP - All checks passed', color: ansi.green },
217
- { code: 1, description: 'WARN - Minor issues found', color: ansi.yellow },
218
- { code: 2, description: 'BLOCK - Cannot ship', color: ansi.red },
219
- ])
220
- .docLink('https://docs.vibecheckai.dev/cli/ship')
221
- .build(),
222
-
223
- fix: new HelpBuilder('fix')
224
- .usage('vibecheck fix [options]', 'repair, autofix')
225
- .description('Generate AI-powered fix missions for detected issues. Creates surgical prompts that guide AI assistants to fix problems without introducing new ones.')
226
- .section('FIX MODES', [
227
- { name: '--plan', description: 'Show fix plan only, no changes (default for free)' },
228
- { name: '--apply', description: 'Apply fixes automatically', tier: 'pro' },
229
- { name: '--interactive', description: 'Review each fix before applying', tier: 'pro' },
230
- ])
231
- .options([
232
- { name: '--path, -p <path>', description: 'Project path' },
233
- { name: '--max <n>', description: 'Maximum fixes to generate (default: 5)' },
234
- { name: '--dry-run', description: 'Show what would be changed' },
235
- { name: '--backup', description: 'Create backup before applying fixes' },
236
- { name: '--json', description: 'Output fix plan as JSON' },
237
- ])
238
- .examples([
239
- { comment: 'Show fix plan', command: 'vibecheck fix --plan' },
240
- { comment: 'Apply fixes with backup', command: 'vibecheck fix --apply --backup' },
241
- { comment: 'Interactive mode', command: 'vibecheck fix --interactive' },
242
- ])
243
- .docLink('https://docs.vibecheckai.dev/cli/fix')
244
- .build(),
245
-
246
- doctor: new HelpBuilder('doctor')
247
- .usage('vibecheck doctor [options]', 'health, diag')
248
- .description('Comprehensive environment diagnostics with auto-fix capability. Checks Node.js, dependencies, configuration, security, and network connectivity.')
249
- .section('CATEGORIES', [
250
- { name: 'system', description: 'OS, memory, disk, CPU' },
251
- { name: 'runtime', description: 'Node.js, npm, package managers' },
252
- { name: 'project', description: 'package.json, dependencies, TypeScript' },
253
- { name: 'security', description: 'Secrets, gitignore, env files' },
254
- { name: 'network', description: 'Internet, npm registry, API' },
255
- { name: 'vibecheck', description: 'Config, truth pack, scan status' },
256
- ])
257
- .options([
258
- { name: '--fix', description: 'Auto-fix issues when possible' },
259
- { name: '--dry-run', description: 'Show what fixes would be applied' },
260
- { name: '--category, -c <cat>', description: 'Run specific category only' },
261
- { name: '--skip-network', description: 'Skip slow network checks' },
262
- { name: '--json', description: 'Output as JSON' },
263
- ])
264
- .examples([
265
- { comment: 'Full diagnostic', command: 'vibecheck doctor' },
266
- { comment: 'Auto-fix issues', command: 'vibecheck doctor --fix' },
267
- { comment: 'Security checks only', command: 'vibecheck doctor -c security' },
268
- ])
269
- .exitCodes([
270
- { code: 0, description: 'Healthy (or warnings without --fail-on-warn)', color: ansi.green },
271
- { code: 1, description: 'Errors found', color: ansi.red },
272
- { code: 2, description: 'Warnings found (with --fail-on-warn)', color: ansi.yellow },
273
- ])
274
- .docLink('https://docs.vibecheckai.dev/cli/doctor')
275
- .build(),
276
-
277
- init: new HelpBuilder('init')
278
- .usage('vibecheck init [options]', 'setup, configure')
279
- .description('Initialize Vibecheck in your project. Detects your framework, creates configuration files, and sets up CI integration.')
280
- .section('SETUP MODES', [
281
- { name: '--quick', description: 'Quick setup with defaults' },
282
- { name: '--wizard', description: 'Interactive setup wizard (default)' },
283
- { name: '--ci', description: 'Generate CI workflow only' },
284
- ])
285
- .options([
286
- { name: '--template <name>', description: 'Use preset template (nextjs, express, etc.)' },
287
- { name: '--hooks', description: 'Install git pre-commit hooks' },
288
- { name: '--force', description: 'Overwrite existing config' },
289
- { name: '--json', description: 'Output as JSON' },
290
- ])
291
- .examples([
292
- { comment: 'Interactive setup', command: 'vibecheck init' },
293
- { comment: 'Quick setup', command: 'vibecheck init --quick' },
294
- { comment: 'Next.js template', command: 'vibecheck init --template nextjs' },
295
- { comment: 'With git hooks', command: 'vibecheck init --hooks' },
296
- ])
297
- .docLink('https://docs.vibecheckai.dev/cli/init')
298
- .build(),
299
-
300
- guard: new HelpBuilder('guard')
301
- .usage('vibecheck guard [options]', 'ai-guard, firewall, validate')
302
- .description('Validate AI-generated code and prompts. Detects prompt injection, verifies claims against your codebase, and ensures AI outputs meet standards.')
303
- .section('CHECK MODES', [
304
- { name: '--claims', description: 'Verify AI claims against truthpack' },
305
- { name: '--prompts', description: 'Check code for prompt injection' },
306
- { name: '--hallucinations', description: 'Detect AI hallucination patterns' },
307
- ])
308
- .options([
309
- { name: '--file <path>', description: 'Check specific file(s)' },
310
- { name: '--strict', description: 'Fail on warnings' },
311
- { name: '--json', description: 'Output as JSON' },
312
- ])
313
- .examples([
314
- { comment: 'Run all checks', command: 'vibecheck guard' },
315
- { comment: 'Verify claims in file', command: 'vibecheck guard --claims --file api.ts' },
316
- { comment: 'CI pipeline', command: 'vibecheck guard --strict --json' },
317
- ])
318
- .exitCodes([
319
- { code: 0, description: 'All checks passed', color: ansi.green },
320
- { code: 1, description: 'Warnings found', color: ansi.yellow },
321
- { code: 2, description: 'Errors found (blocking)', color: ansi.red },
322
- ])
323
- .docLink('https://docs.vibecheckai.dev/cli/guard')
324
- .build(),
325
-
326
- context: new HelpBuilder('context')
327
- .usage('vibecheck context [options]', 'rules, ai-rules, mdc')
328
- .description('Generate project-aware AI coding rules for your IDE. These rules help AI assistants understand your codebase conventions.')
329
- .section('FORMATS', [
330
- { name: 'cursor', description: '.cursorrules file for Cursor IDE' },
331
- { name: 'mdc', description: 'MDC format (.cursor/rules/*.mdc)' },
332
- { name: 'windsurf', description: 'Windsurf rules directory' },
333
- { name: 'copilot', description: 'GitHub Copilot instructions' },
334
- { name: 'all', description: 'Generate all formats (default)' },
335
- ])
336
- .options([
337
- { name: '-f, --format <fmt>', description: 'Format to generate' },
338
- { name: '-o, --output <dir>', description: 'Output directory' },
339
- { name: '--json', description: 'Output as JSON' },
340
- ])
341
- .examples([
342
- { comment: 'Generate all rules', command: 'vibecheck context' },
343
- { comment: 'Cursor only', command: 'vibecheck context --format cursor' },
344
- { comment: 'Custom output', command: 'vibecheck context --output ./ai-rules' },
345
- ])
346
- .docLink('https://docs.vibecheckai.dev/cli/context')
347
- .build(),
348
-
349
- login: new HelpBuilder('login')
350
- .usage('vibecheck login [options]', 'auth, signin')
351
- .description('Authenticate with your Vibecheck API key to unlock paid features and sync with the dashboard.')
352
- .options([
353
- { name: '--key <key>', description: 'Provide API key directly (non-interactive)' },
354
- { name: '--json', description: 'Output as JSON' },
355
- ])
356
- .examples([
357
- { comment: 'Interactive login', command: 'vibecheck login' },
358
- { comment: 'Non-interactive', command: 'vibecheck login --key YOUR_API_KEY' },
359
- { comment: 'Environment variable', command: 'VIBECHECK_API_KEY=xxx vibecheck whoami' },
360
- ])
361
- .footer(`Get your API key at: ${ansi.cyan}https://vibecheckai.dev/settings/keys${ansi.reset}`)
362
- .docLink('https://docs.vibecheckai.dev/authentication')
363
- .build(),
364
-
365
- whoami: new HelpBuilder('whoami')
366
- .usage('vibecheck whoami [options]', 'me, user')
367
- .description('Display information about the currently authenticated user, including plan, limits, and available scopes.')
368
- .options([
369
- { name: '--json', description: 'Output as JSON' },
370
- { name: '--quiet, -q', description: 'Suppress non-essential output' },
371
- ])
372
- .examples([
373
- { comment: 'Check current user', command: 'vibecheck whoami' },
374
- { comment: 'JSON for scripts', command: 'vibecheck whoami --json' },
375
- ])
376
- .docLink('https://docs.vibecheckai.dev/authentication')
377
- .build(),
378
- };
379
-
380
- // ═══════════════════════════════════════════════════════════════════════════════
381
- // MAIN HELP OUTPUT
382
- // ═══════════════════════════════════════════════════════════════════════════════
383
-
384
- function renderMainHelp() {
385
- return `
386
- ${ansi.bold}${ansi.cyan}VIBECHECK${ansi.reset} ${ansi.dim}v${process.env.npm_package_version || '2.0.0'}${ansi.reset}
387
- ${ansi.dim}AI-powered code verification for production readiness${ansi.reset}
388
-
389
- ${ansi.bold}USAGE${ansi.reset}
390
- ${ansi.cyan}vibecheck${ansi.reset} <command> [options]
391
-
392
- ${ansi.bold}CORE COMMANDS${ansi.reset}
393
- ${ansi.cyan}scan${ansi.reset} ${ansi.dim}s${ansi.reset} Analyze codebase for issues
394
- ${ansi.cyan}ship${ansi.reset} ${ansi.dim}go${ansi.reset} One command to ship with confidence
395
- ${ansi.cyan}fix${ansi.reset} ${ansi.dim}repair${ansi.reset} AI-powered fix missions
396
- ${ansi.cyan}doctor${ansi.reset} ${ansi.dim}health${ansi.reset} Environment diagnostics
397
-
398
- ${ansi.bold}AI TOOLS${ansi.reset}
399
- ${ansi.cyan}guard${ansi.reset} ${ansi.dim}firewall${ansi.reset} Validate AI-generated code
400
- ${ansi.cyan}context${ansi.reset} ${ansi.dim}rules${ansi.reset} Generate AI coding rules
401
- ${ansi.cyan}truth${ansi.reset} ${ansi.dim}verify${ansi.reset} Build verification manifest
402
-
403
- ${ansi.bold}SETUP${ansi.reset}
404
- ${ansi.cyan}init${ansi.reset} ${ansi.dim}setup${ansi.reset} Initialize project
405
- ${ansi.cyan}login${ansi.reset} ${ansi.dim}auth${ansi.reset} Authenticate with API key
406
- ${ansi.cyan}whoami${ansi.reset} ${ansi.dim}me${ansi.reset} Show current user
407
-
408
- ${ansi.bold}OPTIONS${ansi.reset}
409
- ${ansi.cyan}--help, -h${ansi.reset} Show help for command
410
- ${ansi.cyan}--version, -V${ansi.reset} Show version
411
- ${ansi.cyan}--json${ansi.reset} Output as JSON
412
- ${ansi.cyan}--quiet, -q${ansi.reset} Suppress non-essential output
413
- ${ansi.cyan}--no-banner${ansi.reset} Skip banner display
414
-
415
- ${ansi.bold}EXAMPLES${ansi.reset}
416
- ${ansi.dim}# Quick scan${ansi.reset}
417
- ${ansi.cyan}vibecheck scan${ansi.reset}
418
-
419
- ${ansi.dim}# Ship check with badge${ansi.reset}
420
- ${ansi.cyan}vibecheck ship --badge${ansi.reset}
421
-
422
- ${ansi.dim}# CI pipeline${ansi.reset}
423
- ${ansi.cyan}vibecheck scan --json --strict${ansi.reset}
424
-
425
- ${ansi.dim}${box.horizontal.repeat(68)}${ansi.reset}
426
- ${ansi.dim}Documentation: https://docs.vibecheckai.dev${ansi.reset}
427
- ${ansi.dim}Get help: vibecheck <command> --help${ansi.reset}
428
- `;
429
- }
430
-
431
- // ═══════════════════════════════════════════════════════════════════════════════
432
- // EXPORTS
433
- // ═══════════════════════════════════════════════════════════════════════════════
434
-
435
- module.exports = {
436
- HelpBuilder,
437
- helpTemplates,
438
- renderMainHelp,
439
- };