@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/registry.js +255 -226
- package/bin/runners/lib/analyzers.js +55 -123
- package/bin/runners/lib/entitlements-v2.js +96 -505
- package/bin/runners/lib/scan-output.js +18 -19
- package/bin/runners/lib/ship-output.js +18 -25
- package/bin/runners/lib/upsell.js +90 -338
- package/bin/runners/runScan.js +14 -1
- package/bin/vibecheck.js +6 -11
- package/mcp-server/index.js +13 -623
- package/mcp-server/lib/api-client.cjs +7 -299
- package/mcp-server/package.json +1 -1
- package/mcp-server/tier-auth.js +175 -574
- package/mcp-server/tools-v3.js +495 -533
- package/package.json +1 -1
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
|
|
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 === "
|
|
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}
|
|
946
|
-
${c.
|
|
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
|
|
package/mcp-server/index.js
CHANGED
|
@@ -650,633 +650,23 @@ function checkTruthFirewallBlock(toolName, args, projectPath) {
|
|
|
650
650
|
// TOOL DEFINITIONS - Public Tools (Clean Product Surface)
|
|
651
651
|
// ============================================================================
|
|
652
652
|
|
|
653
|
-
//
|
|
654
|
-
//
|
|
655
|
-
//
|
|
656
|
-
|
|
657
|
-
|
|
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
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
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
|
-
|
|
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
|