@vibecheckai/cli 3.3.0 → 3.4.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.
package/bin/vibecheck.js CHANGED
@@ -824,9 +824,8 @@ function printCommandHelp(cmd) {
824
824
 
825
825
  const aliases = reverseAliases[cmd] || [];
826
826
 
827
- // Tier badge
827
+ // Tier badge (2-tier: FREE / PRO)
828
828
  const tierBadge = def.tier === "free" ? `${c.green}[FREE]${c.reset}` :
829
- def.tier === "starter" ? `${c.cyan}[STARTER]${c.reset}` :
830
829
  def.tier === "pro" ? `${c.magenta}[PRO]${c.reset}` : "";
831
830
 
832
831
  console.log(`
@@ -840,8 +839,7 @@ function printCommandHelp(cmd) {
840
839
  if (def.examples && def.examples.length > 0) {
841
840
  console.log(` ${c.bold}${sym.star} EXAMPLES${c.reset}\n`);
842
841
  for (const ex of def.examples) {
843
- const exTier = ex.tier ? (ex.tier === "starter" ? `${c.cyan}[STARTER]${c.reset} ` :
844
- ex.tier === "pro" ? `${c.magenta}[PRO]${c.reset} ` : "") : "";
842
+ const exTier = ex.tier === "pro" ? `${c.magenta}[PRO]${c.reset} ` : "";
845
843
  console.log(` ${c.dim}#${c.reset} ${ex.description} ${exTier}`);
846
844
  console.log(` ${c.cyan}${ex.command}${c.reset}`);
847
845
  console.log();
@@ -854,8 +852,7 @@ function printCommandHelp(cmd) {
854
852
  for (const relCmd of def.related) {
855
853
  const relDef = registry.COMMANDS[relCmd];
856
854
  if (relDef) {
857
- const relTier = relDef.tier === "starter" ? `${c.cyan}[STARTER]${c.reset} ` :
858
- relDef.tier === "pro" ? `${c.magenta}[PRO]${c.reset} ` : "";
855
+ const relTier = relDef.tier === "pro" ? `${c.magenta}[PRO]${c.reset} ` : "";
859
856
  console.log(` ${c.cyan}vibecheck ${relCmd}${c.reset} ${relTier}${c.dim}${relDef.description}${c.reset}`);
860
857
  }
861
858
  }
@@ -918,10 +915,9 @@ function printHelp(showBanner = true) {
918
915
  console.log(`\n${cat.color}${cat.icon} ${cat.name}${c.reset}\n`);
919
916
 
920
917
  for (const { cmd, description, tier, caps } of commands) {
921
- // Tier badge
918
+ // Tier badge (2-tier: FREE / PRO)
922
919
  let tierBadge = "";
923
920
  if (tier === "free") tierBadge = `${c.green}[FREE]${c.reset} `;
924
- else if (tier === "starter") tierBadge = `${c.cyan}[STARTER]${c.reset} `;
925
921
  else if (tier === "pro") tierBadge = `${c.magenta}[PRO]${c.reset} `;
926
922
 
927
923
  // Aliases (from reverseAliases map built earlier)
@@ -942,9 +938,8 @@ ${c.dim}${sym.boxHorizontal.repeat(64)}${c.reset}
942
938
 
943
939
  ${c.green}${sym.star} PRICING TIERS${c.reset}
944
940
 
945
- ${c.green}FREE${c.reset} ${c.dim}$0${c.reset} Core scanning, shipping verdicts, health checks
946
- ${c.cyan}STARTER${c.reset} ${c.dim}$39/mo${c.reset} + AI fixes, reports, IDE rules, MCP server
947
- ${c.magenta}PRO${c.reset} ${c.dim}$99/mo${c.reset} + Reality proof, video evidence, AI testing
941
+ ${c.green}FREE${c.reset} ${c.dim}$0${c.reset} Inspect & Observe - scan, report, context, verify
942
+ ${c.magenta}PRO${c.reset} ${c.dim}$69/mo${c.reset} Fix, Prove & Enforce - ship, fix, prove, authority, firewall
948
943
 
949
944
  ${c.green}${sym.rocket} QUICK START${c.reset}
950
945
 
@@ -650,633 +650,23 @@ function checkTruthFirewallBlock(toolName, args, projectPath) {
650
650
  // TOOL DEFINITIONS - Public Tools (Clean Product Surface)
651
651
  // ============================================================================
652
652
 
653
- // RECOMMENDED: Use v3 tools (10 focused tools, STARTER+ only, no free tools)
654
- // These map directly to CLI commands and return file/line citations
655
- // Set VIBECHECK_MCP_V3=false to use legacy tools
656
- const USE_V3_TOOLS = process.env.VIBECHECK_MCP_V3 !== 'false';
657
- const USE_CONSOLIDATED_TOOLS = process.env.VIBECHECK_MCP_CONSOLIDATED !== 'false';
658
-
659
- const TOOLS = (USE_V3_TOOLS ? [
660
- // v3: 10 focused tools for STARTER+ (no free MCP tools)
661
- ...MCP_TOOLS_V3,
662
- AGENT_FIREWALL_TOOL, // Agent Firewall - intercepts file writes
663
- ...getConductorTools(), // Conductor - multi-agent coordination
664
- ].filter(t => t !== null) : USE_CONSOLIDATED_TOOLS ? [
665
- // Curated tools for agents (legacy)
666
- ...CONSOLIDATED_TOOLS,
667
- AGENT_FIREWALL_TOOL, // Agent Firewall - intercepts file writes
668
- ...getConductorTools(), // Conductor - multi-agent coordination
669
- ].filter(t => t !== null) : [
670
- // Legacy: Full tool set (50+ tools) - for backward compatibility
671
- // PRIORITY: Agent Firewall - intercepts ALL file writes
672
- AGENT_FIREWALL_TOOL,
673
- // PRIORITY: Conductor - multi-agent coordination
674
- ...getConductorTools(),
675
- // PRIORITY: Truth Firewall tools (Hallucination Stopper) - agents MUST use these
676
- ...TRUTH_FIREWALL_TOOLS, // vibecheck.get_truthpack, vibecheck.validate_claim, vibecheck.compile_context, etc.
677
-
678
- // Truth Context tools (Evidence-Backed AI)
679
- ...TRUTH_CONTEXT_TOOLS, // vibecheck.ctx, vibecheck.verify_claim, vibecheck.evidence
680
-
681
- ...INTELLIGENCE_TOOLS, // Add all intelligence suite tools
682
- ...VIBECHECK_TOOLS, // Add AI vibecheck tools (verify, quality, smells, etc.)
683
- ...AUTHORITY_TOOLS, // Add authority system tools (classify, approve, list)
684
- ...AGENT_CHECKPOINT_TOOLS, // Add agent checkpoint tools
685
- ...ARCHITECT_TOOLS, // Add architect review/suggest tools
686
- ...CODEBASE_ARCHITECT_TOOLS, // Add codebase-aware architect tools
687
- ...VIBECHECK_2_TOOLS, // Add vibecheck 2.0 consolidated tools
688
- ...intentDriftTools, // Add intent drift guard tools
689
- mdcGeneratorTool, // Add MDC generator tool
690
- // 1. SHIP - Quick health check (vibe coder friendly)
691
- {
692
- name: "vibecheck.ship",
693
- description:
694
- "🚀 Quick health check — 'Is my app ready?' Plain English, traffic light score",
695
- inputSchema: {
696
- type: "object",
697
- properties: {
698
- projectPath: {
699
- type: "string",
700
- description: "Path to project root",
701
- default: ".",
702
- },
703
- fix: {
704
- type: "boolean",
705
- description: "Auto-fix problems where possible",
706
- default: false,
707
- },
708
- },
709
- },
710
- },
711
-
712
- // 2. SCAN - Deep technical analysis
713
- {
714
- name: "vibecheck.scan",
715
- description:
716
- "🔍 Deep scan — technical analysis of secrets, auth, mocks, routes (detailed output)",
717
- inputSchema: {
718
- type: "object",
719
- properties: {
720
- projectPath: {
721
- type: "string",
722
- description: "Path to project root",
723
- default: ".",
724
- },
725
- profile: {
726
- type: "string",
727
- enum: ["quick", "full", "ship", "ci", "security", "compliance", "ai"],
728
- description:
729
- "Check profile: quick, full, ship, ci, security, compliance, ai",
730
- default: "quick",
731
- },
732
- only: {
733
- type: "array",
734
- items: { type: "string" },
735
- description:
736
- "Run only specific checks: integrity, security, hygiene, contracts, auth, routes, mocks, compliance, ai",
737
- },
738
- format: {
739
- type: "string",
740
- enum: ["text", "json", "html", "sarif"],
741
- description: "Output format",
742
- default: "text",
743
- },
744
- },
745
- },
746
- },
747
-
748
- // 3. VERIFY - Runtime verification with Playwright
749
- {
750
- name: "vibecheck.verify",
751
- description:
752
- "🧪 Runtime Verify — clicks buttons, fills forms, finds Dead UI with Playwright",
753
- inputSchema: {
754
- type: "object",
755
- properties: {
756
- url: {
757
- type: "string",
758
- description: "Target URL to test (required)",
759
- },
760
- auth: {
761
- type: "string",
762
- description: "Auth credentials (email:password)",
763
- },
764
- flows: {
765
- type: "array",
766
- items: { type: "string" },
767
- description: "Flow packs to test: auth, ui, forms, billing",
768
- },
769
- headed: {
770
- type: "boolean",
771
- description: "Run browser in visible mode",
772
- default: false,
773
- },
774
- record: {
775
- type: "boolean",
776
- description: "Record video of test run",
777
- default: false,
778
- },
779
- },
780
- required: ["url"],
781
- },
782
- },
783
-
784
- // 3b. REALITY v2 - Two-Pass Auth Verification + Dead UI Crawler
785
- {
786
- name: "vibecheck.reality",
787
- description:
788
- "🧪 Reality Mode v2 — Two-pass auth verification: crawl anon, then auth. Finds Dead UI, HTTP errors, auth coverage gaps.",
789
- inputSchema: {
790
- type: "object",
791
- properties: {
792
- url: {
793
- type: "string",
794
- description: "Target URL to test (required)",
795
- },
796
- auth: {
797
- type: "string",
798
- description: "Auth credentials (email:password) for login attempt",
799
- },
800
- verifyAuth: {
801
- type: "boolean",
802
- description: "Enable two-pass auth verification (anon + auth)",
803
- default: false,
804
- },
805
- storageState: {
806
- type: "string",
807
- description: "Path to Playwright storageState.json for pre-authenticated session",
808
- },
809
- saveStorageState: {
810
- type: "string",
811
- description: "Path to save storageState after successful login",
812
- },
813
- truthpack: {
814
- type: "string",
815
- description: "Path to truthpack.json for auth matcher verification",
816
- },
817
- headed: {
818
- type: "boolean",
819
- description: "Run browser in visible mode",
820
- default: false,
821
- },
822
- maxPages: {
823
- type: "number",
824
- description: "Max pages to visit per pass (default: 18)",
825
- default: 18,
826
- },
827
- maxDepth: {
828
- type: "number",
829
- description: "Max link depth to crawl (default: 2)",
830
- default: 2,
831
- },
832
- danger: {
833
- type: "boolean",
834
- description: "Allow clicking risky buttons (delete, cancel, etc.)",
835
- default: false,
836
- },
837
- },
838
- required: ["url"],
839
- },
840
- },
841
-
842
- // 4. AI-TEST - AI Agent testing
843
- {
844
- name: "vibecheckai.dev-test",
845
- description:
846
- "🤖 AI Agent — autonomous testing that explores your app and generates fix prompts",
847
- inputSchema: {
848
- type: "object",
849
- properties: {
850
- url: {
851
- type: "string",
852
- description: "Target URL to test (required)",
853
- },
854
- goal: {
855
- type: "string",
856
- description: "Natural language goal for the AI agent",
857
- default: "Test all features and find issues",
858
- },
859
- headed: {
860
- type: "boolean",
861
- description: "Run browser in visible mode",
862
- default: false,
863
- },
864
- },
865
- required: ["url"],
866
- },
867
- },
868
-
869
- // 3. GATE - Enforce truth in CI
870
- {
871
- name: "vibecheck.gate",
872
- description: "🚦 Enforce truth in CI — fail builds on policy violations (STARTER tier)",
873
- inputSchema: {
874
- type: "object",
875
- properties: {
876
- projectPath: {
877
- type: "string",
878
- default: ".",
879
- },
880
- policy: {
881
- type: "string",
882
- enum: ["default", "strict", "ci"],
883
- description: "Policy strictness level",
884
- default: "strict",
885
- },
886
- sarif: {
887
- type: "boolean",
888
- description: "Generate SARIF for GitHub Code Scanning",
889
- default: true,
890
- },
891
- },
892
- },
893
- },
894
-
895
- // 5. FIX - Fix Missions v1
896
- {
897
- name: "vibecheck.fix",
898
- description:
899
- "🔧 Fix Missions v1 — AI-powered surgical fixes with proof verification loop. --apply and --autopilot require PRO tier ($99/mo).",
900
- inputSchema: {
901
- type: "object",
902
- properties: {
903
- projectPath: {
904
- type: "string",
905
- default: ".",
906
- },
907
- promptOnly: {
908
- type: "boolean",
909
- description: "Generate mission prompts only (no edits)",
910
- default: false,
911
- },
912
- apply: {
913
- type: "boolean",
914
- description: "Apply patches returned by the model",
915
- default: false,
916
- },
917
- autopilot: {
918
- type: "boolean",
919
- description: "Loop: fix → verify → fix until SHIP or stuck",
920
- default: false,
921
- },
922
- share: {
923
- type: "boolean",
924
- description: "Generate share bundle for review",
925
- default: false,
926
- },
927
- maxMissions: {
928
- type: "number",
929
- description: "Max missions to plan (default: 8)",
930
- default: 8,
931
- },
932
- maxSteps: {
933
- type: "number",
934
- description: "Max autopilot steps (default: 10)",
935
- default: 10,
936
- },
937
- },
938
- },
939
- },
940
-
941
- // 6. SHARE - Generate share bundle from fix missions
942
- {
943
- name: "vibecheck.share",
944
- description: "📦 Share Bundle — generate PR comment / review bundle from latest fix missions",
945
- inputSchema: {
946
- type: "object",
947
- properties: {
948
- projectPath: {
949
- type: "string",
950
- default: ".",
951
- },
952
- prComment: {
953
- type: "boolean",
954
- description: "Output GitHub PR comment format",
955
- default: false,
956
- },
957
- out: {
958
- type: "string",
959
- description: "Write output to file path",
960
- },
961
- },
962
- },
963
- },
964
-
965
- // 7. PROVE - One Command Reality Proof (orchestrates ctx → reality → ship → fix)
966
- {
967
- name: "vibecheck.prove",
968
- description: "🔬 One Command Reality Proof — orchestrates ctx → reality → ship → fix loop until SHIP or stuck (PRO tier)",
969
- inputSchema: {
970
- type: "object",
971
- properties: {
972
- projectPath: {
973
- type: "string",
974
- default: ".",
975
- },
976
- url: {
977
- type: "string",
978
- description: "Base URL for runtime testing",
979
- },
980
- auth: {
981
- type: "string",
982
- description: "Auth credentials (email:password)",
983
- },
984
- storageState: {
985
- type: "string",
986
- description: "Path to Playwright storageState.json",
987
- },
988
- maxFixRounds: {
989
- type: "number",
990
- description: "Max auto-fix attempts (default: 3)",
991
- default: 3,
992
- },
993
- skipReality: {
994
- type: "boolean",
995
- description: "Skip runtime crawling (static only)",
996
- default: false,
997
- },
998
- skipFix: {
999
- type: "boolean",
1000
- description: "Don't auto-fix, just diagnose",
1001
- default: false,
1002
- },
1003
- headed: {
1004
- type: "boolean",
1005
- description: "Run browser in visible mode",
1006
- default: false,
1007
- },
1008
- danger: {
1009
- type: "boolean",
1010
- description: "Allow clicking risky buttons",
1011
- default: false,
1012
- },
1013
- },
1014
- },
1015
- },
1016
-
1017
- // 8. CTX - Truth Pack Generator
1018
- {
1019
- name: "vibecheck.ctx",
1020
- description: "📦 Truth Pack — generate ground truth for AI agents (routes, env, auth, billing)",
1021
- inputSchema: {
1022
- type: "object",
1023
- properties: {
1024
- projectPath: {
1025
- type: "string",
1026
- default: ".",
1027
- },
1028
- snapshot: {
1029
- type: "boolean",
1030
- description: "Save timestamped snapshot",
1031
- default: false,
1032
- },
1033
- json: {
1034
- type: "boolean",
1035
- description: "Output raw JSON",
1036
- default: false,
1037
- },
1038
- },
1039
- },
1040
- },
1041
-
1042
- // 9. PROOF - Premium verification
1043
- {
1044
- name: "vibecheck.proof",
1045
- description:
1046
- "🎬 Premium verification — mocks (static) or reality (runtime with Playwright)",
1047
- inputSchema: {
1048
- type: "object",
1049
- properties: {
1050
- projectPath: {
1051
- type: "string",
1052
- default: ".",
1053
- },
1054
- mode: {
1055
- type: "string",
1056
- enum: ["mocks", "reality"],
1057
- description:
1058
- "Proof mode: mocks (import graph + fake domains) or reality (Playwright runtime)",
1059
- },
1060
- url: {
1061
- type: "string",
1062
- description: "Base URL for reality mode",
1063
- default: "http://localhost:3000",
1064
- },
1065
- flow: {
1066
- type: "string",
1067
- enum: ["auth", "checkout", "dashboard"],
1068
- description: "Flow to test in reality mode",
1069
- default: "auth",
1070
- },
1071
- },
1072
- required: ["mode"],
1073
- },
1074
- },
1075
-
1076
- // 5. REPORT - Access artifacts
1077
- {
1078
- name: "vibecheck.validate",
1079
- description:
1080
- "🤖 Validate AI-generated code. Checks for hallucinations, intent mismatch, and quality issues.",
1081
- inputSchema: {
1082
- type: "object",
1083
- properties: {
1084
- code: { type: "string", description: "The code content to validate" },
1085
- intent: {
1086
- type: "string",
1087
- description: "The user's original request/intent",
1088
- },
1089
- projectPath: { type: "string", default: "." },
1090
- },
1091
- required: ["code"],
1092
- },
1093
- },
1094
- // 10. REPORT - Access scan artifacts
1095
- {
1096
- name: "vibecheck.report",
1097
- description:
1098
- "📄 Access scan artifacts — summary, full report, SARIF export",
1099
- inputSchema: {
1100
- type: "object",
1101
- properties: {
1102
- projectPath: {
1103
- type: "string",
1104
- default: ".",
1105
- },
1106
- type: {
1107
- type: "string",
1108
- enum: ["summary", "full", "sarif", "html"],
1109
- description: "Report type to retrieve",
1110
- default: "summary",
1111
- },
1112
- runId: {
1113
- type: "string",
1114
- description: "Specific run ID (defaults to last run)",
1115
- },
1116
- },
1117
- },
1118
- },
1119
-
1120
- // 11. STATUS - Health and config
1121
- {
1122
- name: "vibecheck.status",
1123
- description: "📊 Server status — health, versions, config, last run info",
1124
- inputSchema: {
1125
- type: "object",
1126
- properties: {
1127
- projectPath: {
1128
- type: "string",
1129
- default: ".",
1130
- },
1131
- },
1132
- },
1133
- },
653
+ // ============================================================================
654
+ // TOOL REGISTRATION - V3 Tools Only (2-tier: FREE / PRO)
655
+ // ============================================================================
656
+ // V3 tools are the canonical tool surface with 2-tier model:
657
+ // - FREE (10 tools): Inspect & Observe
658
+ // - PRO (15 tools): Fix, Prove & Enforce (includes Authority, Conductor, Firewall)
1134
659
 
1135
- // 12. AUTOPILOT - Continuous protection
1136
- {
1137
- name: "vibecheck.autopilot",
1138
- description:
1139
- "🤖 Autopilot continuous protection with weekly reports, auto-PRs, deploy blocking",
1140
- inputSchema: {
1141
- type: "object",
1142
- properties: {
1143
- projectPath: {
1144
- type: "string",
1145
- default: ".",
1146
- },
1147
- action: {
1148
- type: "string",
1149
- enum: ["status", "enable", "disable", "digest"],
1150
- description: "Autopilot action",
1151
- default: "status",
1152
- },
1153
- slack: {
1154
- type: "string",
1155
- description: "Slack webhook URL for notifications",
1156
- },
1157
- email: {
1158
- type: "string",
1159
- description: "Email for weekly digest",
1160
- },
1161
- },
1162
- },
1163
- },
660
+ const TOOLS = [
661
+ // V3 tools include all FREE and PRO tools
662
+ // Authority, Conductor, and Agent Firewall are included in MCP_TOOLS_V3
663
+ ...MCP_TOOLS_V3,
664
+ ].filter(t => t !== null);
1164
665
 
1165
- // 13. AUTOPILOT PLAN - Generate fix plan (PRO tier)
1166
- {
1167
- name: "vibecheck.autopilot_plan",
1168
- description:
1169
- "🤖 Autopilot Plan — scan codebase, group issues into fix packs, estimate risk (PRO tier)",
1170
- inputSchema: {
1171
- type: "object",
1172
- properties: {
1173
- projectPath: {
1174
- type: "string",
1175
- default: ".",
1176
- },
1177
- profile: {
1178
- type: "string",
1179
- enum: ["quick", "full", "ship", "ci"],
1180
- description: "Scan profile",
1181
- default: "ship",
1182
- },
1183
- maxFixes: {
1184
- type: "number",
1185
- description: "Max fixes per category",
1186
- default: 10,
1187
- },
1188
- },
1189
- },
1190
- },
666
+ // Legacy tool definitions removed - V3 is the only supported mode
667
+ // All tools are now defined in tools-v3.js
1191
668
 
1192
- // 14. AUTOPILOT APPLY - Apply fixes (PRO tier)
1193
- {
1194
- name: "vibecheck.autopilot_apply",
1195
- description:
1196
- "🔧 Autopilot Apply — apply fix packs with verification, re-scan to confirm (PRO tier)",
1197
- inputSchema: {
1198
- type: "object",
1199
- properties: {
1200
- projectPath: {
1201
- type: "string",
1202
- default: ".",
1203
- },
1204
- profile: {
1205
- type: "string",
1206
- enum: ["quick", "full", "ship", "ci"],
1207
- description: "Scan profile",
1208
- default: "ship",
1209
- },
1210
- maxFixes: {
1211
- type: "number",
1212
- description: "Max fixes per category",
1213
- default: 10,
1214
- },
1215
- verify: {
1216
- type: "boolean",
1217
- description: "Run verification after apply",
1218
- default: true,
1219
- },
1220
- dryRun: {
1221
- type: "boolean",
1222
- description: "Preview changes without applying",
1223
- default: false,
1224
- },
1225
- },
1226
- },
1227
- },
1228
-
1229
- // 15. BADGE - Generate ship badge
1230
- {
1231
- name: "vibecheck.badge",
1232
- description:
1233
- "🏅 Ship Badge — generate a badge for README/PR showing scan status (STARTER tier)",
1234
- inputSchema: {
1235
- type: "object",
1236
- properties: {
1237
- projectPath: {
1238
- type: "string",
1239
- default: ".",
1240
- },
1241
- format: {
1242
- type: "string",
1243
- enum: ["svg", "md", "html"],
1244
- description: "Badge format",
1245
- default: "svg",
1246
- },
1247
- style: {
1248
- type: "string",
1249
- enum: ["flat", "flat-square"],
1250
- description: "Badge style",
1251
- default: "flat",
1252
- },
1253
- },
1254
- },
1255
- },
1256
669
 
1257
- // 16. CONTEXT - AI Rules Generator
1258
- {
1259
- name: "vibecheck.context",
1260
- description:
1261
- "🧠 AI Context — generate rules files for Cursor, Windsurf, Copilot to understand your codebase",
1262
- inputSchema: {
1263
- type: "object",
1264
- properties: {
1265
- projectPath: {
1266
- type: "string",
1267
- description: "Path to project root",
1268
- default: ".",
1269
- },
1270
- platform: {
1271
- type: "string",
1272
- enum: ["all", "cursor", "windsurf", "copilot", "claude"],
1273
- description: "Target platform (default: all)",
1274
- default: "all",
1275
- },
1276
- },
1277
- },
1278
- },
1279
- ]).filter(t => t !== null);
1280
670
 
1281
671
  // ============================================================================
1282
672
  // SERVER IMPLEMENTATION