@vibecheckai/cli 3.1.6 → 3.2.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 (56) hide show
  1. package/README.md +27 -32
  2. package/bin/registry.js +208 -343
  3. package/bin/runners/context/generators/mcp.js +18 -0
  4. package/bin/runners/context/index.js +72 -4
  5. package/bin/runners/context/proof-context.js +293 -1
  6. package/bin/runners/context/security-scanner.js +311 -73
  7. package/bin/runners/lib/analyzers.js +607 -20
  8. package/bin/runners/lib/detectors-v2.js +172 -15
  9. package/bin/runners/lib/entitlements-v2.js +48 -1
  10. package/bin/runners/lib/evidence-pack.js +678 -0
  11. package/bin/runners/lib/html-proof-report.js +913 -0
  12. package/bin/runners/lib/missions/plan.js +231 -41
  13. package/bin/runners/lib/missions/templates.js +125 -0
  14. package/bin/runners/lib/scan-output.js +492 -253
  15. package/bin/runners/lib/ship-output.js +901 -641
  16. package/bin/runners/runCheckpoint.js +44 -3
  17. package/bin/runners/runContext.d.ts +4 -0
  18. package/bin/runners/runContext.js +2 -3
  19. package/bin/runners/runDoctor.js +11 -4
  20. package/bin/runners/runFix.js +51 -341
  21. package/bin/runners/runInit.js +37 -20
  22. package/bin/runners/runPolish.d.ts +4 -0
  23. package/bin/runners/runPolish.js +608 -29
  24. package/bin/runners/runProve.js +210 -25
  25. package/bin/runners/runReality.js +861 -107
  26. package/bin/runners/runScan.js +238 -4
  27. package/bin/runners/runShip.js +19 -3
  28. package/bin/runners/runWatch.js +25 -5
  29. package/bin/vibecheck.js +35 -47
  30. package/mcp-server/consolidated-tools.js +408 -42
  31. package/mcp-server/index.js +152 -15
  32. package/mcp-server/package.json +1 -1
  33. package/mcp-server/proof-tools.js +571 -0
  34. package/mcp-server/tier-auth.js +22 -19
  35. package/mcp-server/tools-v3.js +744 -0
  36. package/mcp-server/truth-firewall-tools.js +190 -4
  37. package/package.json +3 -1
  38. package/bin/runners/runBadge.js +0 -916
  39. package/bin/runners/runContracts.js +0 -105
  40. package/bin/runners/runCtx.js +0 -680
  41. package/bin/runners/runCtxDiff.js +0 -301
  42. package/bin/runners/runCtxGuard.js +0 -176
  43. package/bin/runners/runCtxSync.js +0 -116
  44. package/bin/runners/runExport.js +0 -93
  45. package/bin/runners/runGraph.js +0 -454
  46. package/bin/runners/runInstall.js +0 -273
  47. package/bin/runners/runLabs.js +0 -341
  48. package/bin/runners/runLaunch.js +0 -181
  49. package/bin/runners/runPR.js +0 -255
  50. package/bin/runners/runPermissions.js +0 -310
  51. package/bin/runners/runPreflight.js +0 -580
  52. package/bin/runners/runReplay.js +0 -499
  53. package/bin/runners/runSecurity.js +0 -92
  54. package/bin/runners/runShare.js +0 -212
  55. package/bin/runners/runStatus.js +0 -102
  56. package/bin/runners/runVerify.js +0 -272
@@ -11,6 +11,7 @@
11
11
 
12
12
  const fs = require("fs");
13
13
  const path = require("path");
14
+ const { parseGlobalFlags, shouldShowBanner } = require("./lib/global-flags");
14
15
 
15
16
  // Use enhanced wizard if available
16
17
  let InitWizard;
@@ -1053,6 +1054,17 @@ function printNextSteps(options = {}) {
1053
1054
  console.log();
1054
1055
  console.log(` ${c.dim}Full docs:${c.reset} ${colors.info}https://docs.vibecheckai.dev${c.reset}`);
1055
1056
  console.log();
1057
+
1058
+ // Upsell box
1059
+ console.log(` ${c.dim}╭────────────────────────────────────────────────────────────╮${c.reset}`);
1060
+ console.log(` ${c.dim}│${c.reset} ${c.dim}│${c.reset}`);
1061
+ console.log(` ${c.dim}│${c.reset} ${colors.accent}⚡ STARTER${c.reset} ${c.dim}•${c.reset} AI-powered fixes, GitHub CI, MCP tools ${c.dim}│${c.reset}`);
1062
+ console.log(` ${c.dim}│${c.reset} ${colors.accent}🏆 PRO${c.reset} ${c.dim}•${c.reset} Runtime proof, verified badges, AI testing ${c.dim}│${c.reset}`);
1063
+ console.log(` ${c.dim}│${c.reset} ${c.dim}│${c.reset}`);
1064
+ console.log(` ${c.dim}│${c.reset} ${colors.info}vibecheck login${c.reset} ${c.dim}to upgrade • vibecheck.dev/pricing${c.reset} ${c.dim}│${c.reset}`);
1065
+ console.log(` ${c.dim}│${c.reset} ${c.dim}│${c.reset}`);
1066
+ console.log(` ${c.dim}╰────────────────────────────────────────────────────────────╯${c.reset}`);
1067
+ console.log();
1056
1068
  }
1057
1069
 
1058
1070
  // ═══════════════════════════════════════════════════════════════════════════════
@@ -1100,8 +1112,10 @@ function printComplianceInfo(complianceType) {
1100
1112
  // HELP DISPLAY
1101
1113
  // ═══════════════════════════════════════════════════════════════════════════════
1102
1114
 
1103
- function printHelp() {
1104
- console.log(BANNER_FULL);
1115
+ function printHelp(showBanner = true) {
1116
+ if (showBanner && shouldShowBanner({})) {
1117
+ console.log(BANNER_FULL);
1118
+ }
1105
1119
  console.log(`
1106
1120
  ${c.bold}Usage:${c.reset} vibecheck init [mode] [options]
1107
1121
 
@@ -1176,13 +1190,19 @@ function printHelp() {
1176
1190
  // ═══════════════════════════════════════════════════════════════════════════════
1177
1191
 
1178
1192
  function parseArgs(args) {
1193
+ // Parse global flags first
1194
+ const { flags: globalFlags, cleanArgs } = parseGlobalFlags(args);
1195
+
1179
1196
  const out = {
1180
- path: ".",
1197
+ path: globalFlags.path || ".",
1181
1198
  gitHooks: false,
1182
- help: false,
1199
+ help: globalFlags.help || false,
1183
1200
  quick: false,
1184
- json: false,
1185
- verbose: false,
1201
+ json: globalFlags.json || false,
1202
+ verbose: globalFlags.verbose || false,
1203
+ noBanner: globalFlags.noBanner || false,
1204
+ ci: globalFlags.ci || false,
1205
+ quiet: globalFlags.quiet || false,
1186
1206
  // Mode flags (--local is default, --connect requires STARTER)
1187
1207
  local: false,
1188
1208
  connect: false,
@@ -1194,24 +1214,20 @@ function parseArgs(args) {
1194
1214
  verify: false,
1195
1215
  // Enterprise options
1196
1216
  enterprise: false,
1197
- ci: false,
1198
1217
  compliance: false,
1199
1218
  team: false,
1200
1219
  mcp: false,
1201
- strict: false,
1220
+ strict: globalFlags.strict || false,
1202
1221
  failOnWarn: false,
1203
1222
  detect: false,
1204
1223
  };
1205
1224
 
1206
- for (let i = 0; i < args.length; i++) {
1207
- const a = args[i];
1225
+ for (let i = 0; i < cleanArgs.length; i++) {
1226
+ const a = cleanArgs[i];
1208
1227
  if (a.startsWith("--path=")) out.path = a.split("=")[1];
1209
- if (a === "--path" || a === "-p") out.path = args[++i];
1228
+ if (a === "--path" || a === "-p") out.path = cleanArgs[++i];
1210
1229
  if (a === "--git-hooks") out.gitHooks = true;
1211
- if (a === "--help" || a === "-h") out.help = true;
1212
1230
  if (a === "--quick" || a === "-q") out.quick = true;
1213
- if (a === "--json") out.json = true;
1214
- if (a === "--verbose" || a === "-v") out.verbose = true;
1215
1231
  if (a === "--verify") out.verify = true;
1216
1232
 
1217
1233
  // Enhancement flags
@@ -1602,7 +1618,7 @@ async function runInit(args) {
1602
1618
  const opts = parseArgs(args);
1603
1619
 
1604
1620
  if (opts.help) {
1605
- printHelp();
1621
+ printHelp(shouldShowBanner(opts));
1606
1622
  return 0;
1607
1623
  }
1608
1624
 
@@ -1621,7 +1637,7 @@ async function runInit(args) {
1621
1637
  opts.team || opts.mcp || opts.detect;
1622
1638
 
1623
1639
  if (EnterpriseInit && useEnterprise && !opts.local && !opts.connect) {
1624
- if (!opts.json) {
1640
+ if (shouldShowBanner(opts)) {
1625
1641
  printBanner();
1626
1642
  bannerPrinted = true;
1627
1643
  printEnterpriseHeader(opts);
@@ -1637,7 +1653,7 @@ async function runInit(args) {
1637
1653
 
1638
1654
  // Detect-only mode (quick detection report)
1639
1655
  if (opts.detect) {
1640
- if (!opts.json) {
1656
+ if (shouldShowBanner(opts)) {
1641
1657
  printBanner();
1642
1658
  bannerPrinted = true;
1643
1659
  console.log(` ${c.dim}Project:${c.reset} ${c.bold}${projectName}${c.reset}`);
@@ -1669,8 +1685,9 @@ async function runInit(args) {
1669
1685
 
1670
1686
  // Interactive wizard mode
1671
1687
  if (opts.wizard && InitWizard) {
1672
- if (!opts.json && !bannerPrinted) {
1688
+ if (shouldShowBanner(opts) && !bannerPrinted) {
1673
1689
  printBanner();
1690
+ bannerPrinted = true;
1674
1691
  }
1675
1692
  const wizard = new InitWizard(targetDir, opts);
1676
1693
  return await wizard.run();
@@ -1678,7 +1695,7 @@ async function runInit(args) {
1678
1695
 
1679
1696
  // Repair mode - fix partial state
1680
1697
  if (opts.repair) {
1681
- if (!opts.json && !bannerPrinted) {
1698
+ if (shouldShowBanner(opts) && !bannerPrinted) {
1682
1699
  printBanner();
1683
1700
  bannerPrinted = true;
1684
1701
  console.log(` ${c.dim}Project:${c.reset} ${c.bold}${projectName}${c.reset}`);
@@ -1690,7 +1707,7 @@ async function runInit(args) {
1690
1707
  }
1691
1708
 
1692
1709
  // Print banner only once (not already printed in enterprise/detect modes)
1693
- if (!opts.json && !bannerPrinted) {
1710
+ if (shouldShowBanner(opts) && !bannerPrinted) {
1694
1711
  printBanner();
1695
1712
  bannerPrinted = true;
1696
1713
 
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Type declarations for runPolish.js
3
+ */
4
+ export function runPolish(args: string[]): Promise<number>;